알고리즘/DFS BSF

알고리즘/DFS BSF

프로그래머스 - 양궁대회

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 라이언이 최대 점수차로 (가장 적은 점수가 더 많은 결과로) 이길 수 있는 점수표를 만드는 문제였다. 문제 풀이 보자마자 완전탐색 문제인 것을 알았는데, 조건이 많아서 하나씩 구현하느라 꽤 걸렸다. dfs 종료조건에서 문제의 이런저런 조건을 다 충족시켜주고 이기는 경우가 없을 경우에는 asnwer에 -1을 넣어주면 된다. 처음에 점수 따는 경우와 안 따는 경우를 조건문으로 해서 사실은 안따는..

알고리즘/DFS BSF

프로그래머스 - 거리두기 확인하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 대기실 현황을 받아 사용자 간의 거리가 2 초과인지 확인하는 문제였다. 문제 풀이 중간에 코어덤프가 나서 많은 고민을 했다.. checkDistance()에서 사용자를 checkPoint에 담은 후 체킹했다는 표시를 남겼어야 헀는데 그러지 않아 dfs()에서 그 위치를 계속해서 탐색하게 되어 일어난 일이었다. 체킹하는 사용자 위치를 3으로 바꿔주었더니 해결됐다. 먼저 string으로 들어온 ..

알고리즘/DFS BSF

프로그래머스 - 이모티콘 할인행사

문제 https://school.programmers.co.kr/learn/courses/30/lessons/150368?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dfs를 이용해 완전탐색을 해서 푸는 문제였다. 문제 풀이 emoticon의 개수가 최대 7, user의 개수가 최대 100, 할인 개수도 4개여서 완전탐색이 가능했다. (4^7 * 100을 해도 160만 정도밖에 나오지 않음) #include #include using namespace std; int sale[4] = {10,20,30,40}; vector u; ..

알고리즘/DFS BSF

이코테, 백준 - 16234

문제 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net dfs로 인구 이동이 총 몇 번 일어나는지 구하는 문제였다. 문제 풀이 dfs를 이용해 국경선이 열리는 곳을 방문 후 stack에 저장하고 stack의 size가 2 이상이면 총 인구수 / 나라수 를 각 stack에 저장된 나라의 인구수로 갱신하고 갱신이 일어나면 flag를 1로 바꿔 다음 while문이 돌아갈 수 있도록 했다. #define _CRT_SECURE_NO_WARN..

알고리즘/DFS BSF

프로그래머스 - 카카오프렌즈 컬러링북

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1829# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr level2 문제로 dfs를 이용해 영역 개수와 최대 크기를 찾는 문제였다. 문제 풀이 처음에 fail이 떠서 당황했는데, 전역 변수 사용 시 함수 내에서 초기화하라는 주석을 보고 dx와 dy, visit를 solution 내에서 초기화했더니 pass가 떴다. #include using namespace std; int dx[4] = {1,-1,0,0}; int dy[4] = {0,0,1,-..

알고리즘/DFS BSF

이코테, 백준 - 18428

문제 https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net dfs를 이용해 장애물 설치의 모든 경우의 수를 다 해보고 감시를 피할 수 있는지 확인하는 문제였다. (백트래킹) 문제 풀이 처음에는 빈 칸의 좌표를 따로 저장하지 않고, 상하좌우로만 이동하며 장애물을 설치했는데 비효율적인 것 같아서 빈 칸의 좌표를 map 입력받을 때 같이 저장해줬다. 그리고 엄청난 실수를 했는데, dfs에서 count+1과 i+1을 넘겨줘야 했는데 count+1과..

알고리즘/DFS BSF

이코테, 백준 - 14888

문제 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net dfs를 이용해 모든 경우의 수를 다 계산해 최솟값과 최댓값을 찾아내는 문제였다. 성공 떠있길래 보니까 1년 전에 풀었던 문제였는데 푼 기억이 없고 처음 보는 문제같았다. 만약 1년쯤 뒤에 또 이 문제를 보면 처음 보는 문제같을까..? 문제 풀이 dfs를 이용해서 연산자 4개에 대해 모든 경우에 다 적용해주었고, 종료 조건에 도달했을..

알고리즘/DFS BSF

이코테, 프로그래머스 - 괄호 변환

문제 https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 순서에 따라 괄호를 올바르게 바꾸는 문제였다. 그냥 시키는대로 따라서 코드를 작성하기만 하면 됐다. 풀이 방법 4번째 순서에 대한 코드를 작성할 때, u의 괄호를 반대로 저장하는 부분을 u를 뒤집어서 저장하도록 만들어서 조금 헤맸다; 이런 실수는 대체 왜 하는걸까? 집중력의 문젠가? 졸리긴 했음; #include #include #include using namespace std; b..

hahihi
'알고리즘/DFS BSF' 카테고리의 글 목록 (3 Page)