본문 바로가기

backjoon/DFS && BFS4

백준 1697 java https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 방법 풀이 코드 import java.io.*; import java.util.*; public class Main{ static int N; static int K; static int move[] = new int[100001]; public static void main(String [] args) throws IOException { BufferedReade.. 2024. 2. 5.
백준 15651 - N과M(3) c언어 https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 이전문제에서는 flag를 사용해서 중복 체크를 했지만 이번문제에서는 그럴 필요가 없다. 2. flag 를 지우고 result[count] = i 로 바로바로 배열에 넣고 재귀를 돌리는 전략을 사용했다. 나의답안) #include voidDFS3(int *result, int count, int N, int M) { inti; if (count == M) { i = 0; while (i < .. 2023. 1. 17.
백준 15650 - N과M(2) c언어 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 이전에 풀었던 N과M(1)과 매우 유사하다 단지 오름차순으로 출력이 되어야한다는것이 다르다. 2. 오름차순이니까 prev라는 변수를 따로 선언해서 prev = result[count - 1] 이라는 조건으로 오름차순을 만들어준다. 3. i = prev 조건으로 인해 while문이 돌아가면서 오름차순이 만들어진다. 4. 나머지는 전에 했던 N과M(1)의 내용과 동일하다. 나의답안) #incl.. 2023. 1. 14.
백준 15649번 -N과M(1) c언어 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 1줄씩 출력해야 한다고 생각해서 배열을 사용하여 내용물을 저장했다가 출력하자는 생각함 2. 이떄 서로 중복 없이 숫자를 골라서 저장하고 출력해야 한다. 따라서 DFS전략을 이용해 재귀문을 사용한다. 3. flag 를 사용해서 중복되는 숫자를 판별해준다. 나의 답안) #include voidDFS(int*result, int count, int N, int M) { inti,j; intfla.. 2023. 1. 11.
728x90