본문 바로가기
IT/CodingTest

[programmers] '외계행성의 나이' 문제 간단하게 풀기

by Echinacea 2025. 2. 27.
반응형



문제 출처

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120834

 

 

문제 설명

우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 되었습니다. 이 행성에서는 나이를 알파벳으로 표현하는 독특한 방식이 존재합니다. 즉, 0은 'a', 1은 'b', 2는 'c', ..., 9는 'j'로 변환됩니다.

예를 들어, 23살은 "cd", 51살은 "fb"로 표현됩니다.

주어진 나이(age)를 PROGRAMMERS-962 방식으로 변환하는 함수를 작성하세요.

 

 

해결 방법

  1. 문자열 변환
    • 주어진 나이(age)를 문자열로 변환하여 각 자리 숫자를 추출합니다.
  2. 알파벳 변환
    • 각 숫자를 'a'부터 시작하는 문자로 변환해야 하므로, ASCII 코드를 활용합니다.
    • ord('a')를 기준으로 해당 숫자를 더하여 변환된 문자를 얻습니다.
  3. 결과 문자열 조합
    • 변환된 문자를 하나의 문자열로 조합하여 최종 결과를 반환합니다.

 

 

코드 구현

def solution(age):
    result = ""
    for digit in str(age):
        result += chr(ord('a') + int(digit))
    return result

# 테스트 코드
print(solution(23))  # "cd"
print(solution(51))  # "fb"
print(solution(100)) # "baa"

 

 

코드 분석

  1. str(age)를 사용하여 age를 문자열로 변환합니다.
  2. 각 자리 숫자를 반복문으로 순회하면서 변환합니다.
  3. chr(ord('a') + int(digit))를 사용하여 각 숫자를 알파벳으로 변환합니다.
  4. 변환된 문자들을 하나의 문자열로 합쳐 반환합니다.

 

 

예제 테스트

입력출력

23 "cd"
51 "fb"
100 "baa"

 

 

마무리

이 문제는 문자열 변환과 ASCII 코드 활용에 대한 개념을 복습하기 좋은 문제입니다. 각 자리 숫자를 문자로 변환하는 방식만 이해하면 쉽게 해결할 수 있습니다. 

반응형

댓글