백준 17608번: 막대기 [JAVA]
·
개발/코딩테스트
https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 풀이 마지막 막대기부터 세야하기 때문에 스택을 사용한다. 오른쪽부터 보이는 막대기를 세는데, 보였던 막대기보다 큰 막대기가 나올 때마다 카운트를 증가시키고, 막대기의 최대값이 나오면 종료한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack..
백준 2164번: 카드2 [JAVA]
·
개발/코딩테스트
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 풀이 제일 위에 있는 카드를 버리거나, 맨 뒤로 넣기만 하면 되므로 큐를 사용하면 된다. N까지 숫자가 들어있는 큐를 만들고, 큐의 사이즈가 1이 될 때까지 버리기, 맨 뒤에 넣기를 반복한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Ar..
백준 1158번: 요세푸스 문제 [JAVA]
·
개발/코딩테스트
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 큐를 이용하는 문제이다. poll한 숫자를 다시 offer(add)해줌으로써 원순열을 구현할 수 있다. 큐가 빌 때까지 while문을 돌리고, K번째 숫자가 나올 때까지 poll한 숫자를 다시 add한다. K번째 숫자는 제거한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Q..