티스토리 뷰
문제출처 - https://www.acmicpc.net/problem/5622
5622번: 다이얼
문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.
www.acmicpc.net
내 풀이
string = list(input())
for i in range(len(string)):
if string[i] == 'A' or string[i] == 'B' or string[i] == 'C':
string[i] = 2
elif string[i] == 'D' or string[i] == 'E' or string[i] == 'F':
string[i] = 3
elif string[i] == 'G' or string[i] == 'H' or string[i] == 'I':
string[i] = 4
elif string[i] == 'J' or string[i] == 'K' or string[i] == 'L':
string[i] = 5
elif string[i] == 'M' or string[i] == 'N' or string[i] == 'O':
string[i] = 6
elif string[i] == 'P' or string[i] == 'Q' or string[i] == 'R' or string[i] == 'S':
string[i] = 7
elif string[i] == 'T' or string[i] == 'U' or string[i] == 'V':
string[i] = 8
else:
string[i] = 9
print(sum(string) + len(string))
나는 너무 더럽게 풀었는데
다른 풀이
dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
a = input()
ret = 0
for j in range(len(a)):
for i in dial:
if a[j] in i:
ret += dial.index(i)+3
print(ret)
파이썬의 in 연산자를 활용하면 훨씬 간단하게 풀 수 있다.
'ALGORITHM > 백준' 카테고리의 다른 글
[Python]백준 - 국영수(10825번) (0) | 2020.03.10 |
---|---|
[Python]백준 - 그룹 단어 체커(1316번) (0) | 2020.03.09 |
[Python]백준 - 상수(2908번) (0) | 2020.03.09 |
[Python]백준 - 단어 공부(1157번) (0) | 2020.03.09 |
[Python]백준 - 상근날드(5543번) (0) | 2020.03.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Permutation
- Python
- 2019 Kakao Blind Recruitment
- dictionary
- 파이썬
- SWExpert
- hash
- 딕셔너리
- 문자열처리
- 재귀
- 해시
- 정렬
- 우선순위큐
- programmers
- combination
- C++
- 힙
- 완전탐색
- 괄호
- left join
- 문자열
- 구현
- 프로그래머스
- BOJ
- SW Expert
- 코딩테스트
- 백준
- 순열
- 2020 KAKAO BLIND RECRUITMENT
- 스택
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함