개발 공부 기록
[SWEA 1225번 / JAVA] 암호생성기 본문
Question
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14uWl6AF0CFAYD
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
💡 Solution
큐를 이용해서 구현했습니다. 입력받은 8개의 데이터를 큐에 차례대로 넣고, 앞에서부터 데이터를 하나씩 빼서 값을 감소시킨 후 감소시킨 값을 다시 큐의 맨 뒤에 넣는 방식으로 진행합니다.
💻 Code
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 SWEA1225 {
static Queue<Integer> queue;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb;
for (int i = 1; i <= 10; i++) {
queue = new LinkedList<>();
sb = new StringBuilder();
int tc = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
for (int j = 0; j < 8; j++) {
queue.offer(Integer.parseInt(st.nextToken()));
}
solve();
for (int k = 0; k < 8; k++) {
sb.append(queue.poll()).append(" ");
}
System.out.printf("#%d %s\n", i, sb);
}
}
public static void solve() {
while (true) {
if (isCycleEnd() == true) {
break;
}
}
}
public static boolean isCycleEnd() {
int decreaseUnit = 1;
for (int i = 0; i < 5; i++) {
int current = queue.poll();
int newValue = current - decreaseUnit;
if (newValue <= 0) {
queue.offer(0);
return true;
} else {
queue.offer(newValue);
}
decreaseUnit++;
}
return false;
}
}
'PS > Implement' 카테고리의 다른 글
[SWEA 1217번 / JAVA] 거듭 제곱 (0) | 2023.11.13 |
---|---|
[SWEA 1215번, 1216 / JAVA] 회문 1, 회문 2 (1) | 2023.11.13 |
[SWEA 3499번 /JAVA] 퍼펙트 셔플 (1) | 2023.11.04 |
[SWEA 5215번 /JAVA] 햄버거 다이어트 (0) | 2023.11.02 |
[Baekjoon 13335번/JAVA] 트럭 (Queue) (0) | 2023.10.26 |