파비의 매일매일 공부기록

[BOJ] 2037 본문

Problem Solving/BOJ

[BOJ] 2037

fabichoi 2022. 4. 12. 23:45

https://www.acmicpc.net/problem/2037 

 

2037번: 문자메시지

첫째 줄에 p와 w가 주어진다. (1 ≤ p, w ≤ 1,000) p는 버튼을 한번 누르는데 걸리는 시간이고, w는 AC와 같은, 같은 숫자인 문자를 연속으로 찍기 위해 기다리는 시간을 의미한다. 그리고 둘째 줄에는

www.acmicpc.net

주어진 조건들만 맞춰서 구현하면 되는 문제.
같은 그룹인지를 찾는 방법을 개선 할 수도 있을 것 같음.

# BOJ 2037
ar = ['', '', 'ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
def get_rept(ch):
    for i in range(2, 10):
        if ch in ar[i]:
            return (i, ar[i].find(ch) + 1)
p, w = map(int, input().split(' '))
s = input()
if len(s) < 2:
    print(p * get_rept(s[0]))
else:
    res = p * get_rept(s[0])[1]
    l = len(s)
    for i in range(1, l):
        if s[i] == ' ':
            res += p
            continue
        prev = get_rept(s[i - 1])
        curr = get_rept(s[i])
        res += p * curr[1]
        if not prev:
            continue
        if prev[0] == curr[0]:
            res += w
    print(res)
반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ] 2061 [재시도 필요]  (0) 2022.04.14
[BOJ] 2052  (0) 2022.04.13
[BOJ] 2033  (0) 2022.04.11
[BOJ] 2028  (0) 2022.04.10
[BOJ] 2010  (0) 2022.04.09
Comments