Study with me/프로그래머스 L0 마스터하기

프로그래머스 - L0 외계행성의나이

외계나무 2024. 1. 9. 14:02

프로그래머스 - level 0 외계행성의 나이

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());
    }
}