반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2024 : 숫자를 한글로 변환 (자바, JAVA)입니다.
Intro
Question
문제 설명
입력
양의 정수 n이 입력된다. ( 0 <= n <= 2,100,000,000)
출력
정수 n을 한글로 출력한다.
예시
- 입력 : 12345
- 출력 : 일만이천삼백사십오
Solution (풀이)
- 풀이 : 메모리 11180, 시간 : 67
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String number = br.readLine();
boolean isExist = false;
if (number.equals("0")) { // 먼저 입력받은 숫자가 0인지 먼저 체크
sb.append("영");
} else {
// 가장 뒤의 자리부터 for문 반복 : 가장 뒷 자리부터 하는 이유는 StringBuilder에 저장하는 순서 때문
for (int i=number.length()-1; i>=0; i--) {
//각 자리 숫자를 charAt을 통해 얻어, switch문을 이용하여 해당 숫자를 문자로 저장
switch(number.charAt(number.length()-i-1)-48) {
case 1 : sb.append("일"); break;
case 2 : sb.append("이"); break;
case 3 : sb.append("삼"); break;
case 4 : sb.append("사"); break;
case 5 : sb.append("오"); break;
case 6 : sb.append("육"); break;
case 7 : sb.append("칠"); break;
case 8 : sb.append("팔"); break;
case 9 : sb.append("구"); break;
}
// 해당 자리 숫자가 0이 아닐 때 해당 자리수의 길이를 통해 단위 저장
if (number.charAt(number.length()-i-1) != '0') {
switch(i) {
case 9 : sb.append("십"); isExist=true; break; // 억&만 단위를 위한 boolean 변수 true
case 8 : sb.append(""); isExist=true; break;
case 7 : sb.append("천"); isExist=true; break;
case 6 : sb.append("백"); isExist=true; break;
case 5 : sb.append("십"); isExist=true; break;
case 4 : sb.append(""); isExist=true; break;
case 3 : sb.append("천"); break;
case 2 : sb.append("백"); break;
case 1 : sb.append("십"); break;
case 0 : sb.append(""); break;
}
}
// 억&만 단위를 위한 boolean 변수 true일 때
if (isExist) {
if (i==8) { // 해당 자리수를 통해 억&만 저장
sb.append("억");
isExist=false;
} else if(i==4) {
sb.append("만");
}
}
}
}
System.out.println(sb);
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q2016 : 천단위 구분기호 (0) | 2022.11.23 |
---|---|
[CodeUp_Java] Q2023 : 엑셀의 열 순서 (0) | 2022.11.23 |
[CodeUp_Java] Q2008 : 오름차순? 내림차순? 2 (0) | 2022.11.23 |
[CodeUp_Java] Q2025 : 좋은 날 (0) | 2022.11.22 |
[CodeUp_Java] Q2026 : 16진수를 2진수로 변환하기 (2) | 2022.11.22 |