BFS(12)
-
[Programmers] 무인도 여행
https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 기본적인 BFS 문제이다. 주의할 점은 방문 처리를 큐에 넣기 직전에 해줘야 한다. Point를 꺼낸 후 방문 처리를 하게 되면 맨 마지막 칸이 두 번 들어가기 때문이다. 코드 import java.util.List; import java.util.ArrayList; import java.util.Collections; import java.util.Queue; import java...
2023.09.12 -
[Programmers] 게임 맵 최단거리
https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 기본적인 DFS/BFS 문제이다. 다만 효율성 때문에 BFS를 사용해야 한다. DFS로 해결하면 효율성 테스트 케이스를 통과하지 못한다. 코드 BFS import java.util.Queue; import java.util.LinkedList; class Solution { private int targetX; private int targetY; private final int[] dx..
2023.09.05 -
[Programmers] 미로 탈출
https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 기본적인 BFS 문제이다. 문제는 복잡하지 않으므로 사이트 설명을 확인하기 바란다. 풀이 방법 기본적인 BFS 탐색을 활용하면 된다. BFS의 원리와 구현만 할 수 있다면 충분히 풀 수 있는 문제이다. 이외에 추가적인 알고리즘은 없으므로 코드로 확인하자. import java.util.*; class Solution { static int N, M; static int[] dx = {..
2023.05.01 -
[Baekjoon] 2251번: 물통
https://www.acmicpc.net/problem/2251 2251번: 물통 각각 부피가 A, B, C(1≤A, B, C≤200) 리터인 세 개의 물통이 있다. 처음에는 앞의 두 물통은 비어 있고, 세 번째 물통은 가득(C 리터) 차 있다. 이제 어떤 물통에 들어있는 물을 다른 물통으로 쏟아 부 www.acmicpc.net 문제 설명 문제 이해는 어렵지 않다. 물통 A, B, C가 있고 처음엔 C만 채워진 상태로 주어진다. 그 다음 물통의 물을 다른 물통으로 옮기다가 A 물통이 비었을 때의 C 물통에 담겨 있는 물의 양을 알아놓았다가 오름차순으로 출력하면 된다. 예제 입력으로 예를 들면 다음과 같다. A 물통이 비어있으므로 현재 C 물통에 차있는 만큼인 10을 정답에 추가한다. C에서 B로 물을 ..
2023.04.19 -
[Baekjoon] 16234번: 인구 이동
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제 설명 BFS를 활용한 구현, 시뮬레이션 문제이다. 문제 조건을 읽고 하나하나 꼼꼼하게 작성해 나가면 된다. 풀이 방법 구현 문제다 보니 코드가 꽤 길다(100줄 가량 된다). import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Queu..
2023.04.18 -
[Baekjoon] 1963번: 소수 경로
https://www.acmicpc.net/problem/1963 1963번: 소수 경로 소수를 유난히도 좋아하는 창영이는 게임 아이디 비밀번호를 4자리 ‘소수’로 정해놓았다. 어느 날 창영이는 친한 친구와 대화를 나누었는데: “이제 슬슬 비번 바꿀 때도 됐잖아” “응 지금 www.acmicpc.net 문제 설명 소수 A를 소수 B로 바꾸는 최소 단계를 구해야 한다. A를 B로 바꿀 때는 한 자릿수만 바꿀 수 있으며 바꾼 수 또한 소수여야 한다. 또한 네 자리 소수만 허용하므로 0039와 같은 수는 안 된다. 풀이 방법 이 문제는 소수 구하기와 BFS가 결합된 문제이다. 소수 구하기 에라토스테네스의 체를 활용해서 해결한다. import java.io.*; import java.util.*; class M..
2023.04.12