📑 1. 문제설명

💡 2. 접근방식
`String.valueOf()` Java에서 다양한 타입의 값을 문자열로 변환하는 메서드
`문자열 변수명.toCharArray()`: 문자열을 한글자씩 배열로 만드는 메서드
`(char)('a' + (digit - '0'))`: 숫자를 문자로 변환하여 알파벳을 얻는 코드 (아래에서 자세히 설명)
⭐ 3. 정답코드
class Solution {
public String solution(int age) {
StringBuilder result = new StringBuilder();
String ageStr = String.valueOf(age);
for (char digit : ageStr.toCharArray()) {
result.append((char) ('a' + (digit - '0')));
}
return result.toString();
}
}
(char) ('a' + (digit - '0'))
1. (digit - '0')
여기까지는 digit이 문자(char)로 표현된 숫자(예: '3', '5')이다.
왜냐하면 String.valueOf(age)를 통해서 나이를 문자열로 변환하고 ageStr.toCharArray()로 배열에 담았기 때문이다.
'0'의 ASCII 값은 48이기 때문에 digit에서 0을 빼 준다.
예를 들면 '3' - '0' → 51 - 48 → 정수 3
즉, digit - '0'을 하면 문자형 숫자를 실제 정수로 변환할 수 있다.
2. 'a' + (digit - '0')
'a'의 ASCII 값은 97이다. 숫자를 정수 값으로 변환한 후, 'a'의 ASCII 값에 더한다.
똑같은 예시로, digit = '3'일 때:
'a' + ('3' - '0')
97 + 3 → 100
ASCII 코드 100은 문자 'd'
3. (char)(...)
최종적으로 (char)를 사용하여 숫자를 다시 해당 ASCII 값에 대응하는 문자로 변환하는 과정이다.
예를 들어 digit = '3'이면 'd'가 된다.
'Algorithm > JAVA테스트' 카테고리의 다른 글
[프로그래머스] (Java) 순서쌍의 개수 문제풀이 (7) | 2025.03.18 |
---|---|
[프로그래머스] (Java) 진료순서 정하기 (HashMap) 문제풀이 (4) | 2025.03.17 |
[프로그래머스] (Java) 특정문자 제거하기 문제풀이 (4) | 2025.03.14 |
[프로그래머스] (Java) 배열의 평균값, 옷가게 할인 받기, 아이스 아메리카노 , 나이 출력, 배열 뒤집기 문제풀이 (6) | 2025.03.10 |
[프로그래머스] (Java) 피자 나눠 먹기 (1), (2), (3) (6) | 2025.03.10 |
📑 1. 문제설명

💡 2. 접근방식
String.valueOf()
Java에서 다양한 타입의 값을 문자열로 변환하는 메서드문자열 변수명.toCharArray()
: 문자열을 한글자씩 배열로 만드는 메서드(char)('a' + (digit - '0'))
: 숫자를 문자로 변환하여 알파벳을 얻는 코드 (아래에서 자세히 설명)
⭐ 3. 정답코드
class Solution { public String solution(int age) { StringBuilder result = new StringBuilder(); String ageStr = String.valueOf(age); for (char digit : ageStr.toCharArray()) { result.append((char) ('a' + (digit - '0'))); } return result.toString(); } }
(char) ('a' + (digit - '0'))
1. (digit - '0')
여기까지는 digit이 문자(char)로 표현된 숫자(예: '3', '5')이다.
왜냐하면 String.valueOf(age)를 통해서 나이를 문자열로 변환하고 ageStr.toCharArray()로 배열에 담았기 때문이다.
'0'의 ASCII 값은 48이기 때문에 digit에서 0을 빼 준다.
예를 들면 '3' - '0' → 51 - 48 → 정수 3
즉, digit - '0'을 하면 문자형 숫자를 실제 정수로 변환할 수 있다.
2. 'a' + (digit - '0')
'a'의 ASCII 값은 97이다. 숫자를 정수 값으로 변환한 후, 'a'의 ASCII 값에 더한다.
똑같은 예시로, digit = '3'일 때:
'a' + ('3' - '0')
97 + 3 → 100
ASCII 코드 100은 문자 'd'
3. (char)(...)
최종적으로 (char)를 사용하여 숫자를 다시 해당 ASCII 값에 대응하는 문자로 변환하는 과정이다.
예를 들어 digit = '3'이면 'd'가 된다.
'Algorithm > JAVA테스트' 카테고리의 다른 글
[프로그래머스] (Java) 순서쌍의 개수 문제풀이 (7) | 2025.03.18 |
---|---|
[프로그래머스] (Java) 진료순서 정하기 (HashMap) 문제풀이 (4) | 2025.03.17 |
[프로그래머스] (Java) 특정문자 제거하기 문제풀이 (4) | 2025.03.14 |
[프로그래머스] (Java) 배열의 평균값, 옷가게 할인 받기, 아이스 아메리카노 , 나이 출력, 배열 뒤집기 문제풀이 (6) | 2025.03.10 |
[프로그래머스] (Java) 피자 나눠 먹기 (1), (2), (3) (6) | 2025.03.10 |