문제
https://school.programmers.co.kr/learn/courses/30/lessons/120834
풀이
StringBuilder를 사용해 문자열을 효율적으로 처리하고자 했다.
숫자타입인 age를 하나하나 나누려고 Integer.toString()을 사용해서 String 타입으로 변환했다.
for문을 이용하여 ageStr을 문자별로 분리하여 변수 num에 넣어서 반복한다.
이때 num에서 '0' ( ASCⅡ 코드 48 )을 빼준 값을 digit으로 선언하였는데, 이유는 0부터 9까지의 경우 ASCⅡ 코드가 연속적이기 때문에 num의 ASCⅡ 코드에서 '0' ( ASCⅡ 코드는 48 )을 빼면 해당 값이 실제 숫자값으로 정규화할 수 있기 때문이다.
이렇게 구한 숫자타입의 digit 변수를 a에 더하면 해당 알파벳 숫자로 이동할 수 있다.
a는 ASCⅡ에서 97이다. 따라서 만약 digit이 1이라면 98이 되어 b가 반환될 것이다. 그리고 이 숫자형은 문자형으로 형변환을 시켜서 converChar 변수에 넣어주었다.
그리고 해당 문자를 sb에 append()메소드를 이용해 차례로 넣어준다.
그리고 해당 sb를 String문자열로 반환하였다.
코드
class Solution {
public String solution(int age) {
StringBuilder sb = new StringBuilder();
String ageStr = Integer.toString(age);
for(char num : ageStr.toCharArray()){
int digit = num - '0';
char convertChar = (char)('a'+digit);
sb.append(convertChar);
}
return sb.toString();
}
}
'하루하루 > 프로그래머스 문제풀이' 카테고리의 다른 글
[Lv.0 - Java] 120904. 숫자 찾기 (0) | 2023.12.15 |
---|---|
[Lv.0 - Java] 120897. 약수 구하기 (0) | 2023.12.15 |
[Lv.0 - Java] 120815. 피자 나눠 먹기 (2) (0) | 2023.12.12 |
[Lv.0 - Java] 120844. 배열 회전시키기 (0) | 2023.12.11 |
[Lv.0 - Java] 120850. 문자열 정렬하기 (1) (1) | 2023.12.09 |