import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// 입력 받기
int T = 10;
Queue<Integer> queue;
for (int i = 1; i <= T; i++) {
queue = new LinkedList<Integer>();
int tc = Integer.parseInt(in.readLine());
String input = in.readLine();
// 입력 처리를 tokenizer로 해주는 거 연습해보기
StringTokenizer st = new StringTokenizer(input, " ");
// 입력 받고서 Queue로 처리해주기
while (st.hasMoreTokens()) {
queue.offer(Integer.parseInt(st.nextToken()));
}
int forMinus = 1;
// 빼줄 값 forMinus 1로 초기화
while (true) {
// forMinus = 6되면 다시 1로 초기화
if (forMinus == 6)
forMinus = 1;
// poll하고 forMinus만큼 빼주고 forMinus++, 다시 Queue에 offer
int offer = queue.poll() - forMinus++;
// offer해줄 값이 0보다 작거나 같으면
if (offer <= 0) {
// Queue에 0 push
queue.offer(0);
// 종료
break;
} else {
queue.offer(offer);
}
}
System.out.print("#" + tc + " ");
Iterator<Integer> iter = queue.iterator();
while (iter.hasNext()) {
System.out.print(iter.next() + " ");
}
System.out.println();
}
}
}
Queue를 이용해 해결하는 문제. 분명 난이도가 높지 않은 문제임에도 구현에 시간이 오래 걸렸다.
수업시간에 처음 알게 된 StringTokenizer를 학습 하고 활용하는데에 시간을 소요
poll값이 아닌 offer해줄 값이 0인데 문제를 잘못 읽고 헤맴.
'온라인 저지 > SWEA' 카테고리의 다른 글
[SWEA/Java] 9229 한빈이와 Spot Mart (0) | 2022.02.10 |
---|---|
[SWEA/Java] 1218 괄호 짝짓기 (0) | 2022.02.09 |
[SWEA/Java] 1218 괄호 짝짓기 (0) | 2022.02.07 |
[SWEA/Java] 1873 상호의 배틀필드 (0) | 2022.02.05 |
[SWEA/Java] 1208 Flatten (0) | 2022.02.04 |
댓글