일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준
- C언어
- php 프로그래밍
- C
- programmers
- php 프로그래밍 입문 예제
- Flutter
- php 프로그래밍 입문
- 페이코 추천인코드
- 자바 스프링
- php 프로그래밍 입문 솔루션
- Java
- 최단 경로
- JAVA SPRING
- 페이코 추천인
- 스프링
- 페이코 친구코드
- 배열
- 파이썬
- SWEA
- php 프로그래밍 입문 연습문제
- 플러터 개발환경 설정
- 자바
- 한정 분기
- php
- php 프로그래밍 입문 문제풀이
- spring
- 페이코 초대코드
- php 프로그래밍 입문 3판
- 플러터
Archives
- Today
- Total
01-22 13:27
ImJay
[SWEA/Java] 1225. 암호생성기 본문
반응형
[SWEA/Java] 1225. 암호생성기
풀이
package edu.ssafy.im.SWEA.D3.No1225;
import java.io.*;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.StringTokenizer;
public class Solution {
int n = 8; // 입력으로 주어지는 숫자의 개수
// 큐를 사용하여 데이터를 저장할 변수 선언
Queue<Integer> queue;
public static void main(String[] args) throws IOException {
new Solution().io();
}
private void io() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
for (int t = 1; t <= 10; t++) { // 테스트케이스 반복
br.readLine(); // 테스트케이스 번호는 사용하지 않으므로 건너뜀
StringTokenizer st = new StringTokenizer(br.readLine());
queue = new ArrayDeque<>(); // 큐 초기화
// 입력으로 주어진 숫자들을 큐에 저장
for (int i = 0; i < n; i++) {
queue.offer(Integer.parseInt(st.nextToken()));
}
// 암호를 도출하는 메서드 호출
String ans = sol();
// 결과 문자열 생성
sb.append("#").append(t).append(" ").append(ans).append("\n");
}
// 결과 출력
bw.write(sb.toString());
bw.flush();
bw.close();
}
private String sol() {
StringBuilder sb = new StringBuilder();
int cycle = 1; // 사이클 카운터 초기화
L: // 레이블을 사용하여 루프 제어
while (true) {
int q = queue.poll() - cycle; // 큐에서 숫자를 꺼내어 사이클 값을 뺀다
if (q <= 0) { // 숫자가 0 이하로 감소할 경우
queue.offer(0); // 큐에 0을 추가하고
break L; // 레이블로 표시된 루프 종료
} else {
queue.offer(q); // 큐에 감소한 숫자를 추가
}
cycle %= 5; // 사이클을 5로 나눈 나머지를 계산하여 사이클 카운터 갱신
cycle++; // 사이클 카운터 증가
}
// 암호를 구성하는 숫자들을 문자열로 변환하여 반환
for (int q : queue) {
sb.append(q).append(" ");
}
return sb.toString(); // 암호 문자열 반환
}
}
반응형
'SW Expert Academy > D3' 카테고리의 다른 글
[SWEA/Java] 6808. 규영이와 인영이의 카드게임 (0) | 2024.04.18 |
---|---|
[SWEA/Java] 1228. 암호문 1 (0) | 2024.02.05 |
[SWEA/Java] 6808. 규영이와 인영이의 카드게임 (0) | 2024.02.04 |
[SWEA/Java] 5215. 햄버거 다이어트 (0) | 2024.02.04 |
[SWEA/Java] 7964. 부먹왕국의 차원 관문 (0) | 2024.01.29 |
Comments