https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 해설 : 5x5의 2차 배열이 주어진다. 원소는 P, O, X로 P는 사람, O는 빈자리,..
https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 해설: 그래프 vertex사이의 간선정보가 주어질 때 1번째 노드에서 가장 멀리 떨어져있는 노드가 몇 개인지를 return하면 된다. 풀이: vertex사이의 간선정보를 통해 n개의 노드 사이에 연결정보를 담은 list를 새로 만든다. 이 list를 BFS로 전체탐색하여 이미 탐색한 node의 정보를 1번노드로부터의 거리로 초기화시켜준다. 모든 탐색을 마치고 거리정보가 담긴 list의 max을 카운팅해주면 된다. 1234567891..
https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 해설 : 사용할 수 있는 수들이 담긴 배열과 targetNumber가 주어질 때 주어진 배열의 수들을 덧셈 혹은 뺄셈 연산하여 타겟 넘버를 만들 수 있는 경우의 수를 찾는 문제이다. 풀이 : DFS(깊이우선 탐색)를 사용해서 해결할 수 있는 문제이다. 재귀함수의 매개변수로 현재 값, 현재 값을 만들기 위해 사..