문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14uWl6AF0CFAYD
풀이
큐 자료구조를 활용하면 간단히 풀 수 있는 문제
cnt를 반복할 때마다 갱신할 때 (cnt+1)%5을 하고 넣을 때 +1하여 사이클 구분없이 1,2,3,4,5,1,2,3,4,5....식으로 돌게 했다.
만약 해당 과정을 수행할 때 0이하의 수가 발생하게 된다면 사이클을 멈추고 마지막 한번 더 작업을 돌아 완성
코드
class Solution {
public static void main(String args[]) throws Exception {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T;
T = 10;
for (int test_case = 1; test_case <= T; test_case++) {
int cnt = 0;
bf.readLine();
Queue<Integer> table = new LinkedList<>();
StringTokenizer st = new StringTokenizer(bf.readLine());
while(st.hasMoreTokens()) {
table.add(Integer.parseInt(st.nextToken()));
}
while((table.peek()-(cnt%5+1))>0) {
int tmp = table.poll();
tmp-=(cnt+1);
table.add(tmp);
cnt=(cnt+1)%5;
}
table.poll();
table.add(0);
sb.append("#"+test_case+" ");
while(!table.isEmpty()) {
sb.append(table.poll()+" ");
}
sb.append("\n");
}
System.out.println(sb);
}
}
'공부-코딩테스트 > Java-코딩테스트-편의기능' 카테고리의 다른 글
자바 리스트 특정 위치에 다른 리스트를 삽입하는 방법 (0) | 2022.08.08 |
---|---|
stream을 사용해서 String배열을 int형배열로 변경하는 법 (0) | 2022.08.07 |
배열값을 특정값으로 채우는 방법 Arrays.fill() (0) | 2022.08.07 |
자바 코딩테스트 데이터 받는 방법 (0) | 2022.08.03 |
자바-배열 정렬하기 기능 (0) | 2022.07.25 |
댓글