[SWEA] 1225. 암호 생성기
문제 링크
풀이 과정
문제에서 숫자가 0보다 작아지면 그만한다고 적혀있지만, 탈출 조건에 0도 포함시켜줘야 합니다.
boolean exit = false;
outer:
while (true) {
for (int num = 1; num <= 5; num++) {
int now = q.poll();
now -= num;
if (now <= 0) {
exit = true;
now = 0;
}
q.add(now);
if (exit) break outer;
}
}
위 코드는 다음 과정을 수행합니다.
- 큐에서 요소 하나를 빼서 num 을 뺀다.
- 뺀 값이 0 이하면 그만한다.
- 아니라면, 큐에 다시 넣어준다.
- num 값을 1 증가시킨다.
코드
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
int tc = sc.nextInt();
Queue<Integer> q = new LinkedList<>();
for (int j = 0; j < 8; j++) q.add(sc.nextInt());
boolean exit = false;
outer:
while (true) {
for (int num = 1; num <= 5; num++) {
int now = q.poll();
now -= num;
if (now <= 0) {
exit = true;
now = 0;
}
q.add(now);
if (exit) break outer;
}
}
System.out.print("#" + tc + " ");
while (!q.isEmpty()) System.out.print(q.poll() + " ");
System.out.println();
}
}
}
댓글남기기