Study with me/프로그래머스 L0 마스터하기
프로그래머스 - L0 외계행성의나이
외계나무
2024. 1. 9. 14:02
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());
}
}