[문제]
https://www.acmicpc.net/problem/2037
[풀이]
그림대로 파이썬 이중 리스트를 만들었다. total과 past_j 변수를 초기화한 후 입력받은 값을 넣은 text 변수의 첫 번째 글자부터 가져와 그 글자가 공백(' ')이면 2를 추가, 아닐 경우 이중 리스트 keyboard에 접근해 첫 번째 글자와 일치하는 값이 있는 인덱스를 구했다.
만약 이전에 입력했던 글자와 현재 입력하려는 글자가 같은 버튼이라면(if j == past_j), w초를 추가해주었다. 그 후 total을 갱신하고, past_j 값도 현재의 j 값으로 갱신해준다.
[코드]
if __name__ == '__main__':
keyboard = [[], ['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L'], ['M', 'N', 'O'],
['P', 'Q', 'R', 'S'], ['T', 'U', 'V'], ['W', 'X', 'Y', 'Z']]
p, w = map(int, input().split())
text = input()
total = 0
past_j = ''
for i in range(len(text)):
if text[i] == ' ':
total += p
past_j = ''
for j in range(len(keyboard)):
for k in range(len(keyboard[j])):
if text[i] == keyboard[j][k]:
if j == past_j:
total += w
total += (1+k) * p
past_j = j
print(total)
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 2789번 유학 금지 (0) | 2021.06.15 |
---|---|
[Python] BOJ/백준 1152번 단어의 개수 (0) | 2021.06.14 |
[Python] BOJ/백준 1362번 펫 (0) | 2021.06.14 |
[Python] BOJ/백준 2596번 비밀편지 (0) | 2021.06.13 |
[Python] BOJ/백준 2587번 대표값2 (0) | 2021.06.12 |