-
[SWEA] 1225. [S/W 문제해결 기본] 7일차 - 암호생성기PS/Java 2021. 3. 10.
다음 주어진 조건에 따라 n개의 수를 처리하면 8자리의 암호를 생성할 수 있다.
1. 8개의 숫자를 입력 받는다.
2. 첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보낸다.
3. 다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번째 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4, 그 다음 수는 5를 감소한다.
- 숫자가 감소할 때 0보다 작아지는 경우 0으로 유지되며, 프로그램은 종료된다. 이 때의 8자리의 숫자 값이 암호가 된다.
import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class 암호생성기 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); for(int tc = 1; tc <= 10; tc++) { int tt = scanner.nextInt(); Queue<Integer> queue = new LinkedList<>(); for(int i = 0; i < 8; i++) { queue.offer(scanner.nextInt()); } while(true) { boolean k = false; for(int cnt = 1; cnt <= 5; cnt++) { int a = queue.poll(); a -= cnt; if (a <= 0) { a = 0; k = true; queue.offer(a); break; } else { queue.offer(a); } } if(k) { break; } } System.out.print("#" + tc + " "); for(int i = 0; i < 8; i++) { System.out.print(queue.poll() + " "); } System.out.println(); } } }
Queue를 사용하여 처음에서 뺀 값을 다시 Queue의 마지막에 삽입한다.
'PS > Java' 카테고리의 다른 글
[SWEA] 2063. 중간값 찾기 (0) 2021.03.13 [SWEA] 1861. 정사각형 방 (0) 2021.03.10 [SWEA] 1228. [S/W 문제해결 기본] 8일차 - 암호문1 (0) 2021.03.10 [백준] 2839번: 설탕 배달 (0) 2021.03.10 [SWEA] 2805. 농작물 수확하기 (0) 2021.03.10