0 → "0" → 0 → +97 → 'a' → "a" 순서. 이렇게 써놓고 보니까 복잡하네. 비효율적이었군.
import java.util.Arrays;
import java.util.stream.Collectors;
class Solution {
public String solution(int age) {
String[] answer = (age + "").split("");
answer = Arrays.stream(answer)
.map(s -> (String.valueOf((char)(Integer.parseInt(s) + 97))))
.toArray(String[]::new);
return String.join("", answer);
}
}
▼ 타인의 풀이
문자열을 그대로 숫자로 만들어서 97('a')를 더하지 않고, char로 만들어 49('a'-'0' = 97-48)을 더하는 방식 + Stream
0 → "0" → '0' → +49 → 'a' → "a" 순서
문자열 배열을 따로 저장하지 않았다는 점에서 공간복잡도 줄어들 듯.
import java.util.stream.Collectors;
class Solution {
public String solution(int age) {
return String.valueOf(age)
.chars()
.mapToObj(operand -> String.valueOf((char) (49 + operand)))
.collect(Collectors.joining());
}
}
'Study with me > 프로그래머스 L0 마스터하기' 카테고리의 다른 글
프로그래머스 - L0 주사위게임2 (1) | 2024.01.11 |
---|---|
프로그래머스 - L0 문자열잘라서정렬하기 // sort() & split() (0) | 2024.01.10 |
프로그래머스 - L0 문자리스트를문자열로반환하기 // join String (1) | 2024.01.08 |
프로그래머스 - L0 배열회전시키기 // 배열 복사 (1) | 2024.01.07 |
프로그래머스 - L0 약수구하기 (0) | 2024.01.07 |