문제 설명

우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMERS-962식 나이를 return 하도록 solution 함수를 완성해주세요.

 

제한사항

  • age는 자연수입니다.
  • age ≤ 1,000
  • PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다.

 

입출력 예

age result
23 "cd"
51 "fb"
100 "baa"

 

내 풀이

def solution(age):
    answer = []
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    for j in list(str(age)):
        answer.append(list(alphebet)[int(j)])
    return "".join(answer)
    
# 정리 전
def solution(age):
    answer = []
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    alphabet_list = list(alphabet)
    age_list = list(str(age))
    for j in age_list:
        answer.appned(alphabet_list[int(j)])
    return "".join(answer)

 

회고

  • 진짜 비효율적이고 열심히 풀었다! 뿌듯하다.
  • 코드 진짜 무식하게 짰지만 누가 봤을 때 이해는 잘 되겠지. 뿌듯
  • 처음에 문자열을 리스트로 만드는 법을 몰라서 리스트 컴프리헨션을 통해서 어렵게 만들었었는데, 의햄이  list()  함수를 알려주었다.
  • 아스키 코드를 통해 풀 수도 있다:  answer += chr(int(a)+97) 
  • 이걸  return ''.join([chr(int(a)+97) for i in str(age)])  한 줄로 줄여서 쓰는 사람들 진짜 변태 같고 굉장하다.
  • 문자열 'a' = 97 →  ord() chr() 을 통해 서로 변환 가능
  • 의햄의 팁: 궁금할 때는  type() 을 써보자!
  • map() 함수로도 풀어보고 싶은데 어떻게 푸는 건지 모르겠다. (되긴 되나?)

 

복사했습니다!