99클럽 코테 스터디 12일차 TIL
·
코딩테스트/99클럽 4기
풀이모든 토마토가 익는 최소 일수를 구하는 BFS 문제이다.창고 칸에 맞게 입력된 토마토에서 익은 토마토들만 Queue에 저장한다.BFS로 위,아래,왼쪽... 총 6 방향을 탐색하여 익지 않은 토마토 0인 경우 익은 토마토 1로 변경한다. 이때, 익은 토마토 1이라는 표시 대신 익은 날짜를 넣는다.익은 토마토들로 채워진 창고를 순회하여 0이 하나라도 있으면 -1을 반환하고0이 없다면 익은 날짜값들의 최댓값을 찾아 반환한다. 구현1 - 실패문제에 높이, 가로, 세로 값이 주어졌는데도 3차원 배열이 아닌 2차원 배열을 사용했다.개발하면서 3차원 배열까지 구현해본 적이 없어서인지 2차원 배열로도 풀 수 있을 줄 알았다. 탐색해야 하는 6개의 방향 중 앞, 뒤를 탐색할 때 문제가 발생했는데창고 크기를 초기화할 ..
99클럽 코테 스터디 11일차 TIL
·
코딩테스트/99클럽 4기
문제 이해사이클이 없는 방향 그래프 -> 단방향 그래프모든 여행 루트 중 어떤 루트로 이동하더라도 만난다면 "Yes"모든 여행 루트 중 팬클럽 곰곰이를 만나지 않는 루트가 있다면 "yes"구현DFS를 사용하여 모든 여행 루트를 탐색해야 한다.여행 루트 탐색 도중 팬클럽 곰곰이를 만난다면, 만나기 전 지점으로 다시 돌아가 새로운 여행 루트를 탐색해야 한다.팬클럽 곰곰이를 한번도 만나지 않았고, 해당 정점에서 탐색할 루트가 없다면 yes를 출력한다.예제 입력 1번위의 그림은 예제 입력 1번의 그림이다.1번 정점에서 출발하여 2번 루트를 선택했다면 3번과 4번으로 갈 수 있다.3번과 4번 모두 곰곰이 이슈로 2번 루트에서 빠져나와야 한다.5번 루트로 이동하려하니 여기도 곰곰이가 있다. 6번 정점에서 출발한다면..
99클럽 코테 스터디 10일차 TIL
·
코딩테스트/99클럽 4기
문제 키워드A번 도시에서 B번 도시로 이동하는 단방향 도로가 존재도시의 최단 거리를 계산하여 k 거리만큼 떨어진 도시들의 번호 출력최단 거리 값을 구하는 게 아닌, 최단 거리에 있는 도시들의 번호를 출력하는 것이다.그래프 탐색인 것은 알겠는데, 이미 k라는 최단 거리 값이 있어 어떤 탐색을 써야 하나 혼동이 왔다. 지금까지 풀었던 BFS 문제들을 보면, 모든 노드를 탐색하고 해당 노드에 시작 노드와의 거리 값을 입력했다. 그리고 최단 거리 값을 출력했다.풀이위와 같은 방법으로 접근하고, 주어진 최단 거리 값이 같은 노드 즉, 도시 번호를 출력하면 된다.BFS를 사용하여 출발 도시에서부터 각 도시의 거리를 계산한다.주어진 k 와 같다면 해당 도시 번호를 리스트에 저장한다.빈 리스트가 반환되면 -1을 출력한..
99클럽 코테 스터디 9일차 TIL
·
코딩테스트/99클럽 4기
문제 키워드나이트가 특정 지점에서부터 이동할 수 있는 칸 수는 최대 8칸이다.나이트가 최소 몇 번만에 이동할 수 있는지 출력한다.주어진 체스판 안에서 나이트가 이동할 수 있는 모든 지점을 방문해야 한다.현재 지점에서 나이트가 이동할 수 있는 최대 8개 지점을 계산하고, 한 지점씩 방문한다. 방문하지 않은 지점을 queue에 저장하고,방문할 때마다 현재 방문지점이 시작지점에서 몇 번 이동해야 도착할 수 있는지 기록한다. 작은 범위의 체스판을 그려 이해해보자.체스판 : 4 * 4시작지점 : 0, 0목표지점 : 3, 0start32534122143end 5232실제 코드에서는 목표지점에 도착했다하더라도 모든 지점을 탐색한다.하지만 목표지점은 이미 방문했기 때문에 숫자는 변경되지 않는다. BFS 가 종료되면 체..