Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 기초
- Tutorial
- w3school
- github
- Class
- c++
- DP
- parameter
- 프로그래밍
- dynamic
- loop
- 파이썬
- String
- guide
- W3Schools
- Unity
- dfs
- UE5
- Algorithm
- 백준
- Material
- 문제풀이
- C#
- 오류
- python
- Programming
- 시작해요 언리얼 2022
- Unreal Engine 5
- Basic
- 재귀
Archives
- Today
- Total
행복한 개구리
백준 21.10.27. 5622 - 다이얼 본문

dial = ("ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ")
number = input()
time = 0
for i in number:
for j in dial:
if i in j:
time += dial.index(j) + 3
print(time)
번호마다 할당받은 알파벳이 불규칙하게 3개 또는 4개씩 할당받았기 때문에 리스트로 이를 만들어준다.
다음으로는 다이얼을 걸 때 걸리는 시간인데
- 숫자 1을 걸 때 -> 숫자1까지 거는 시간 + 다이얼을 처음으로 돌리는 시간 = 2초이다.
- 따라서 "숫자만큼의 시간 + 1" 의 시간이 걸린다.
- => ex ) 9를 걸려면 9(다이얼을 돌리는 시간) + 1(처음으로 초기화시키는 시간) = 10이므로 10초가 걸린다.
따라서 리스트의 인덱스는 0부터 시작하므로 번호 하나당 [인덱스 + 2](다이얼을 거는 시간) + 1초(초기화시간)만큼의 시간이 필요하다.
- 다이얼 리스트와 전화번호를 입력받게 만든다.
- 총 걸릴 시간을 집계할 객체를 만든다.
- 반복문을 통해서 전화번호를 순회한다.
- 중첩반복문으로 순회를 할 때마다 일치하는 글자가 어느다이얼에 있는지 구한다.
- 여기서 주의할 점은 다이얼의 알파벳은 1이 아닌 2부터 시작한다. 따라서 0인덱스의 요소 = 다이얼2 를 의미한다.
- 따라서 해당 다이얼 인덱스 + 2에 초기화할 시간이 필요하므로 +1을 더해준다.
- => 이것은 index + 2 +1 이므로 index + 3이라는 식이 성립된다.
- 따라서 time은 dial의 index + 3만큼 증가한다.
- 이것을 누적한 시간을 출력한다.
'Algorithm > BaekJoon' 카테고리의 다른 글
백준 21.11.25. 1316 - 그룹 단어 체커 (0) | 2021.11.25 |
---|---|
백준21.11.25. 2941번 - 크로아티아 알파벳 (0) | 2021.11.25 |
백준 21.10.26. 2908 - 상수 (0) | 2021.10.26 |
백준 21.10.26. 1152 - 단어의 개수 (0) | 2021.10.26 |
백준 21.10.26. 1157 - 단어 공부 (0) | 2021.10.26 |