100세까지 코딩
[백준] 5622번 다이얼 (파이썬) + 딕셔너리 자료형 본문
문제
나의 생각
- 처음에는 (ord와 // 3)으로 아스키코드를 사용하여 계산하려 했다.
- 그러나, 7번 9번에 알파벳이 4개씩 들어있어서 불가능.
- 두 번째로, list를 생성해 알파벳에 맞게 초기화한다.
- list를 순회할 때마다 +1씩 해주며 list에 해당 알파벳이 들어있으면 종료.
나의 풀이
s = input()
alphabet_list = ['', '', 'ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
total = 0
for index in range(len(s)):
for alphabet in alphabet_list:
total += 1
if s[index] in alphabet:
break
print(total)
새롭게 알게 된 풀이 (딕셔너리)
s = input()
alphabet_list = {'ABC': 3, 'DEF': 4, 'GHI': 5, 'JKL': 6, 'MNO': 7, 'PQRS': 8, 'TUV': 9, 'WXYZ': 10}
total = 0
for index in range(len(s)):
for key in alphabet_list:
if s[index] in key:
total += alphabet_list[key]
print(total)
참고
1. 딕셔너리 자료형 : 키 - 값으로 이루어진 자료형, 키는 고유한 1개만 가능
2. 딕셔너리 선언 방법 : { } or dict()
3. 딕셔너리의 키 = 수정 불가능한 데이터 타입만 (int, strings, tuples, float, bool)
4. 딕셔너리 사용법:
- len(dict) : 딕셔너리에 포함된 키-값 총 개수 반환
- dict.items() : 딕셔너리에 있는 모든 키-값 반환
- dict.keys() : 모든 키 반환
- dict.values() : 모든 값 반환
- dict[key] : 특정 키에 대한 값 반환, 존재하지 않는 키면 KeyErrror
- dict.get(key) : 특정 키에 대한 값 반환, 존재하지 않는 키면 None 반환
- x in dict : 딕셔너리에 x라는 키가 있으면 True 없으면 False
- dict.update(키-값, 키-값) : 두 개 이상의 키-값을 동시에 수정
'코딩테스트 > 파이썬' 카테고리의 다른 글
[백준] 1157번 단어 공부 (파이썬) (0) | 2024.01.10 |
---|---|
[백준] 25083 새싹 (파이썬) + 따옴표 3개 표현 (0) | 2024.01.10 |
[백준] 10809번 알파벳 찾기 (파이썬) (0) | 2024.01.09 |
[백준] 1546번 평균 (파이썬) (0) | 2024.01.09 |
[백준] 10811번 바구니 뒤집기 (파이썬) (0) | 2024.01.09 |