[level 0] 외계행성의 나이 - 120834
성능 요약
메모리: 83 MB, 시간: 3.49 ms
구분
코딩테스트 연습 > 코딩테스트 입문
문제 설명
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age
가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.
제한사항
age
는 자연수입니다.age
≤ 1,000- PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다.
입출력 예
age | result |
---|---|
23 | "cd" |
51 | "fb" |
100 | "baa" |
입출력 예 설명
입출력 예 #1
age
가 23이므로 "cd"를 return합니다.
입출력 예 #2
age
가 51이므로 "fb"를 return합니다.
입출력 예 #3
age
가 100이므로 "baa"를 return합니다.
Comments
문자열 작업 시 자주 사용하는 StringBuilder와 StringBuffer 비교
class Solution {
public String solution(int age) {
StringBuilder sb = new StringBuilder();
while(age > 0) {
sb.insert(0, (char) ((age % 10) + (int)'a'));
age /= 10;
}
return sb.toString();
}
}
공통점
- String 보다 저장공간 덜 차지 → GC(가비지 컬렉션) 작업 줄어듬
- 두 클래스 모두 주요 메서드는 같음
차이점
StringBuffer | StringBuilder |
---|---|
단일 스레드에서 안전하지 않음 | 단일 스레드에서 안전 |
멀티 스레드에서 안전(여러 스레드 접근 불가) | 멀티 스레드에서 안전하지 않음 |
성능 및 속도 ↓ | 성능 및 속도 ↑ |
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'알고리즘 문제풀이 > Programmers' 카테고리의 다른 글
Programmers [level 0] 문자 반복 출력하기 - 120825 (0) | 2023.08.10 |
---|---|
Programmers [level 0] 진료 순서 정하기 - 120835 (0) | 2023.08.10 |
Programmers [level 0] 짝수 홀수 개수 - 120824 (0) | 2023.08.10 |
Programmers - Lv.0 (0) | 2023.06.09 |
Programmers - Lv.0 (0) | 2023.05.26 |