프로그래머스_Python_오답노트_딕셔너리, 인덱스 사용

HEE·2025년 3월 26일
0
post-thumbnail

1. 프로그래머스 python 코딩테스트

Level 0. 외계행성 나이

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

정답 확인

  1. 딕셔너리 사용
def solution(age):
    d = {
        0:'a',
        1:'b',
        2:'c',
        3:'d',
        4:'e',
        5:'f',
        6:'g',
        7:'h',
        8:'i',
        9:'j'
    }
    return ''.join(d[int(i)] for i in str(age))
  • 딕셔너리
  • return은 결과를 반환하는 키워드.
  • result = 변수 할당하고 사용함.
  • d[i] for i in str(age)는 str(age)에서 하나씩 뽑는 i가 문 자열이라 딕셔너리 key (숫자)랑 매치를 못함.
  • d[i]를 숫자로 변경해서, 딕셔너리 key랑 매치함.

2.인덱스 사용

def solution(age):
    answer = ''
    alpha = ['a','b','c','d','e','f','g','h','i','j']
    for i in str(age):
        answer += alpha[int(i)]
    return answer
  • 인덱스정수여야하기 때문에 alpha[int(i)] 라고 정수 처리함.

인덱스 정리

  1. 값을 가져오기.
    리스트[인덱스] or 문자열[인덱스]
    ex. a[1] -> 'b'

  2. 위치 찾기.
    리스트.인덱스(값) or 문자열.index(값)
    ex. a.index('b') -> 1

  3. 안되는 경우!!

d = {'a': 1, 'b': 2}
d.index('a')     # ❌ AttributeError 발생

d['a']   # -> 1 딕셔너리는 key 기반.
  • 리스트, 문자열이 아닌 자료형 (딕셔너리)는 index() 안됨!!
  • 딕셔너리는 key 기반. 딕셔너리.[] 사용해야함.
  1. 딕셔너리에서 n번째 항목을 찾을때
list(d.items())[1]    # ('b', 20) → 두 번째 항목
list(d.keys())[1]     # 'b' → 두 번째 키
list(d.values())[1]   # 20 → 두 번째 값
  1. 정리
profile
ALL IS WELL

0개의 댓글