분류 전체보기67 백준 1697번: 숨바꼭질 [JAVA] https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 기준점에서 +1, -1, *2 된 점까지 가는 시간은 1초이다. 그래프의 인접 노드라고 생각할 수 있는 것이다. 따라서 BFS를 이용하여 1초 걸리는 지점을 방문 → 또 그 지점을 기준으로 1초 걸리는 지점을 방문을 반복하다 보면 각 점까지 도달하는 최소 시간을 찾아낼 수 있다. 동생의 위치인 K에 도달하면 반복을 멈추고 걸린 시간을 출력한다. 코드 import j.. 2023. 3. 27. 백준 13923번: ABCDE [JAVA] https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 풀이 처음에는 문제가 잘 이해되지 않았지만, 결론적으로 이 문제는 연속으로 이어진 5개의 노드가 있는지 확인하는 문제이다. 따라서, DFS를 이용해 연결된 5개의 노드가 있는지 확인하면 된다. for 문을 이용해 0~N-1번을 각각 시작점으로 둔다. 그리고 인접한 노드를 찾은 뒤, 방문하지 않았다면 다시 인접 노드를 탐색한다. 이렇게 쭉 들어가다가 5번째 노드를 찾으면 종료하고, 찾지 못 했다면 이전의 노드로 돌아온다. 이 때, 이전 노드로 돌아왔다면 방금 찾았던 노드는 방문 체크를 해제해줘야 한다. .. 2023. 3. 27. 백준 2638번: 치즈 [JAVA] https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net * 풀이 가장 바깥의 공간부터 사방을 탐색한다. 주변에 빈 공간이 있다면 다음 공간도 탐색하고 치즈를 만난다면 체크만 한다. 치즈를 두 번 만난 경우 표시를 0으로 바꿔 치즈를 없앤다. 이 반복을 치즈가 모두 사라질 때까지 반복하고 반복한 횟수를 출력한다. * 코드 import java.io.BufferedReader; import java.io.IOException; import j.. 2023. 3. 27. 백준 9663번: N-Queen [JAVA] https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net * 풀이 첫번째 시도에서는 N x N 크기의 2차원 배열을 만들어 가능한 퀸의 자리를 모두 체크하는 방식을 떠올렸지만 잘 되지 않았다. 하지만 퀸끼리는 1) 같은 행 2) 같은 열 3) 대각선에 놓을 수 없기 때문에 1차원 배열로도 표현할 수 있었다. x축을 인덱스, y축을 값으로 보아 [1,3,0,2] 라면 0열 1행, 1열 3행, 2열 0행, 3열 2행에 퀸이 놓아지는 형식이다. 이렇게 표현한다면 순열 형식으.. 2023. 3. 27. 이전 1 2 3 4 5 6 7 ··· 17 다음