1. 내가 푼 코드
class Solution {
public String solution(int age) {
String answer = "";
String ageSize = String.valueOf(age); // age를 String형으로 변환
String alphabet = "";
// 알파벳 배열 만들기
for(char i='a'; i<='j'; i++) {
alphabet += i;
}
// age 크기 만큼 돌면서 각 문자를 인덱스로 변화해 일치 알파벳 찾기
for(char i: ageSize.toCharArray()) {
answer += alphabet.charAt((i)-'0');
}
return answer;
}
}
2. alphabet 배열 생성 후 while문으로
class Solution {
public String solution(int age) {
String answer = "";
String[] alphabet = new String[]{"a","b","c","d","e","f","g","h","i","j"};
while(age>0) {
answer = alphabet[age%10] + answer;
age /= 10;
}
return answer;
}
}
3. Stringbuilder 생성후 while문으로 insert해서 집어넣기
class Solution {
public String solution(int age) {
StringBuilder sb = new StringBuilder();
while(age > 0) {
sb.insert(0, (char) ((age % 10) + (int)'a')); // (int)'a' == 97
age /= 10;
}
return sb.toString();
}
}
확실히 for문을 두 번 돌리니까 더 오래 걸린다..
Stringbuilder에 insert( ) 메서드가 아주 유용한 것 같다. age를 나눈 나머지 + 97을 하면 숫자에 맞는 문자가 나오는게 신기..(분명히 옛날에 해본 것 같기도 한데..)
age /= 10 이 떠오르긴 했지만 어떻게 풀어야 할 지 감이 안왔는데 while문으로해서 하면 되겠다..!
'algorithm > Programmers' 카테고리의 다른 글
[JAVA] 진료 순서 정하기 (0) | 2023.01.14 |
---|---|
[JAVA] 순서쌍의 개수(약수의 개수 구하는 알고리즘) (0) | 2023.01.14 |
[JAVA] 배열 자르기 (0) | 2023.01.13 |
[JAVA] 특정 문자 제거하기 (0) | 2023.01.13 |
[JAVA] 짝수의 합 (0) | 2023.01.13 |