SSAFY/SWEA

[SWEA] 1225 : 암호생성기

믕비 2023. 4. 27. 20:08
반응형

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AV6kld8aisgDFASb&contestProbId=AV14uWl6AF0CFAYD&probBoxId=AV-4MojKLNADFATz&type=PROBLEM&problemBoxTitle=%5BD2~D3+%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4%5D+%EA%B8%B0%EC%B4%88+%EB%8B%A4%EC%A7%80%EA%B8%B0+Part4&problemBoxCnt=14 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

어려운 문제가 아닌데 생각지도 못 한 부분에서 계속 오류가 나서 오래 걸렸음.

왜 오류가 나는 건지도 모르겠어서 계속 헤매다가 그냥 꼬지 않고 담백하게 코드를 짰더니 맞음.. 

 

내 코드

메모리 : 26464 KB

시간 : 116 ms

코드길이 : 1268 B

 

[내 코드]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class Solution {
	static Queue<Integer> queue;

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		int T = 10;
		while(T-- > 0){
			int t = Integer.parseInt(br.readLine());
			sb.append('#').append(t).append(' ');
			queue = new LinkedList<>();
			
			st = new StringTokenizer(br.readLine());
			for(int i = 0; i < 8; i++) {
				queue.offer(Integer.parseInt(st.nextToken()));
			}
			
			boolean keep = true;
			int minus = 1;
			while(keep) {
				keep = cycle(minus);
				minus++;
				if(minus == 6)
					minus = 1;
			}
			
			while(!queue.isEmpty()) {
				sb.append(queue.poll()).append(' ');
			}
			
			sb.append('\n');
		}
			System.out.print(sb);
	}
	
	//재귀로 하니까 스택오버플로우 발생
	public static boolean cycle(int times) {
		int firstNum = queue.poll() - times;
		
		if(firstNum <= 0) {
			firstNum = 0;
			queue.offer(firstNum);
			return false;
		}
		else {
			queue.offer(firstNum);
			return true;
		}
	}
}
반응형

'SSAFY > SWEA' 카테고리의 다른 글

[SWEA] 1486 : 장훈이의 높은 선반  (0) 2023.04.29
[SWEA] 3074 : 입국심사  (0) 2023.04.28
[SWEA] 1221 : GNS  (0) 2023.04.27
[SWEA] 1220 : Magnetic  (0) 2023.04.27
[SWEA] 1217 : 거듭제곱  (0) 2023.04.27