코드굽는 타자기
SWEA[1225] - 암호생성기[D3] 본문
링크
SWEA[1225]
문제설명
- Queue
문제풀이
- Queue
문제코드
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Solution1225 {
public static void main(String args[]) throws Exception
{
System.setIn(new FileInputStream("res/swea/1225.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = 10;
for(int test_case = 1; test_case <= T; test_case++)
{
Queue<Integer> q = new LinkedList<>();
br.readLine().trim();
StringTokenizer st = new StringTokenizer(br.readLine()," ");
for (int i = 0; i < 8; i++) {
q.offer(Integer.parseInt(st.nextToken()));
}
//System.out.println(q.toString());
int temp=0;
top:
while(true) {
// 1 cycle
for (int i = 1; i <= 5; i++) {
temp = q.poll();
temp -=i;
if(temp<=0) {
temp=0;
q.offer(temp);
break top;
}
q.offer(temp);
}
}
System.out.print("#"+test_case+" ");
for (int i = 0; i < 8; i++) {
System.out.print(q.poll()+" ");
}
System.out.println();
}
}
}
아쉬운점
- 문제 제약사항을 잘못읽음
- 0보다 작으면 멈춘다고하였다가 0이하일경우 멈춘다고되어있었음. 답은 0 이하인 경우로 풀 때임
- Queue는 인덱스로 접근을 할 수 가 없어서 프린트할 때 poll()함.
잘한점
- Queue 공부함
- Buffer Tokenizer로 한줄에 여러개 받는 방법 공부함
- 사이클이 5가 아니라 8이었으면 queue안써도 되는 풀이 생각할 수 있었는데 아니어서 그냥 안함.
'알고리즘 > 스택&큐' 카테고리의 다른 글
SWEA[1229] - 암호문2[D3] (0) | 2020.02.04 |
---|---|
SWEA[1228] - 암호문1[D3] (0) | 2020.02.03 |
Jungol[1141] - 불쾌한 날(Bad Hair Day) (0) | 2020.02.03 |
SWEA[1218] - 타일 장식물[D4] (0) | 2020.01.31 |
Comments