백준 15652번, N과 M(4)
백준 15652번 c++ 문제풀이 문제: 백준 15652 풀이: 깊이우선탐색으로 접근했다. 재귀함수 dfs를 1부터 시작하고, 수열 중 몇번째(count)인지 다음 수열을 선택할 때 넘겨준다. 선택된 수는 arr[count]에 저장해준다. count가 m이랑 같다면 그 수열을 출력해준다. 다음 수열 값을 정해줄 때는 범위를...
백준 15652번 c++ 문제풀이 문제: 백준 15652 풀이: 깊이우선탐색으로 접근했다. 재귀함수 dfs를 1부터 시작하고, 수열 중 몇번째(count)인지 다음 수열을 선택할 때 넘겨준다. 선택된 수는 arr[count]에 저장해준다. count가 m이랑 같다면 그 수열을 출력해준다. 다음 수열 값을 정해줄 때는 범위를...
백준 15650번 c++ 문제풀이 문제: 백준 15650 풀이: 깊이우선탐색으로 접근했다. 재귀함수 dfs를 1부터 시작하고, 수열 중 몇번째(count)인지 다음 수열을 선택할 때 넘겨준다. 선택된 수는 arr[count]에 저장해준다. count가 m이랑 같다면 그 수열을 출력해준다. 다음 수열 값을 정해줄 때는 무조건...
백준 7576번 c++ 문제풀이 문제: 백준 7576 풀이: 토마토가 심긴 땅에 대한 정보를 n은 세로, m은 가로길이로 이중 벡터에 저장한다. 저장된 정보를 바탕으로 너비우선탐색을 실행 저장된 수가 1인 벡터부터 시작한다. 저장된 수가 1인 벡터부터 (x+1,y), (x-1,y), (x,y+1), (x, y-1)방향을 연결되...
백준 14940번 c++ 문제풀이 문제: 백준 14940 풀이: n은 세로, m은 가로길이로 이중벡터에 땅에 대한 정보를 저장한다. 각 위치에서 목표지점까지의 거리 = 목표지점에서 각 위치까지의 거리 목표지점부터 (x+1,y), (x-1,y), (x,y+1), (x, y-1)방향을 연결되어 있는 노드로 본다. 위의 방향을 기준...
백준 1074번 c++ 문제풀이 문제: 백준 1074 풀이: 총 4분면으로 나누어서 진행한다. 크기가 1*1이 될때까지 사각형을 4분면으로 쪼갠다(재귀함수를 통해 진행한다) 1*1의 좌표가 찾는 좌표라면 그 값을 출력한다. 아니라면 방문한 순서를 증가시켜준다. 위에 과정만 진행하면 시간 초과가 된다. 4분면 중 찾는 좌표가...
백준 1931번 c++ 문제풀이 문제: 백준 1931 풀이: 일단 이차원 벡터(v)로 회의실 시간을 저장 받는다. 저장 받은 회의실 정보를 끝나는 시간(v[][1])을 기준으로 내림차순으로 정렬한다(벡터로 저장했기에). 위 기준에 따라 끝나는 시간이 젤 빠른게 맨 뒤에 저장되므로 맨뒤에 것을 다른 이차원 벡터(v2)에 저장하고 v...
백준 1697번 c++ 문제풀이 문제: 백준 1697 풀이: 수빈이와 동생의 위치 n, k를 입력받는다. 수빈이가 동생보다 앞에 있다면, 즉 n이 k보다 크다면, x*2, x+1로는 뒤로 갈수 없으므로 즉 -1로만 좌표 이동이 가능하다. (n>=k)일 때는 결과값이 n-k이다. 반대로 수빈이가 동생보다 뒤에 있다면, 모든 방...
백준 18870번 c++ 문제풀이 문제: 백준 18870 풀이: 먼저 두개의 벡터(v1, v)에 좌표 정보를 저장 한다. v벡터는 오름차순으로 정렬 후 중복된 숫자를 지운다. v1에 저장된 좌표의 순서대로 v에 몇번 째로 저장 되어 있는지 찾아 출력한다. 위 과정을 이분 탐색으로 진행하여 시간 초과가 나지 않도록 한다. 코...
백준 2805번 c++ 문제풀이 문제: 백준 2805 풀이: 벡터에 나무의 길이를 저장한다. 벡터를 오름차순으로 정렬한다. 0부터 가장 긴 나무 길이 사이에서 이분 탐색을 통해 가장 적절한 길이를 찾는다 가장 짧은 나무부터 이분 탐색을 하는 것이 아닌, 0부터 이분탐색을 하는 이유는 가장 짧은 나무를 잘라야할 수도 있기 때문이...
백준 11724번 c++ 문제풀이 문제: 백준 11724 풀이: 이차원 벡터에 간선 끼리 연결되어있는 정점의 정보를 입력한다. dfs 함수를 통해 어떤 요소끼리 연결되어 있는지 판단한다. dfs 함수가 끝났을 때도 방문하지 않은 노드가 있다면, 그 노드부터 다시 dfs함수를 실행한다. 총 몇번 함수를 돌렸는지 확인하고 출력한다...