728x90
반응형
2024.05.18기준 - 브론즈2
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 동아시아에서 연도를 표기할 때 십간과 십이지를 사용하여 60년 주기로 간지를 부여합니다.
이에 따라 각 연도는 "갑자", "을축", "병인" 등의 이름으로 표현됩니다.
이러한 표기법을 서양식으로 변환하는 코드를 작성하는 문제입니다.
1년째는 "갑자"이기 때문에, 십간을 갑에 해당하는 인덱스 7, 십이간을 자에 해당하는 인덱스9로 초기화를해 시작을 했습니다.
저는 간단하게 반복문을 사용해서 계산을 했습니다.
2년째 부터 입력받은 년도 까지 십간이 10이 되면 0으로, 십이간이 12이가 되면 0으로 초기화 하는 방식으로 접근했습니다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int y = Integer.parseInt(br.readLine());
int index10 = 7; // 십간의 시작은 '갑'에 해당하는 인덱스인 7부터 시작
int index12 = 9; // 십이지의 시작은 '자'에 해당하는 인덱스인 9부터 시작
// 입력된 연도만큼 반복하여 간지 계산
for (int i = 2; i <= y; i++) {
index10++; // 십간 인덱스 증가
if (index10 == 10) { // 십간은 10년 주기로 순환하므로 10이 되면 다시 0으로 초기화
index10 = 0;
}
index12++; // 십이지 인덱스 증가
if (index12 == 12) { // 십이지는 12년 주기로 순환하므로 12가 되면 다시 0으로 초기화
index12 = 0;
}
}
char c = (char)(index12 + 'A'); // '자'부터 시작하기 때문에 'A'를 더해 알파벳으로 변환
sb.append(c).append(index10); // 변환된 십이지와 십간을 StringBuilder에 추가
System.out.println(sb);
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 31823번 악질 검거 (2) | 2024.05.20 |
---|---|
BAEKJOON / 백준 - JAVA 31824번 근로장학생 (0) | 2024.05.19 |
BAEKJOON / 백준 - JAVA 31825번 알파벳과 쿼리 (Easy) (0) | 2024.05.16 |
BAEKJOON / 백준 - JAVA 13567번 로봇 (0) | 2024.05.12 |
BAEKJOON / 백준 - JAVA 31712번 핑크빈 레이드 (0) | 2024.05.11 |