일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 쓰릴오브파이트
- 뭐든
- 운동
- Writing
- 프로젝트
- 30분
- 영어공부
- 링피트
- 사이드
- 파비최
- 미드시청
- 화상영어
- Daily Challenge
- 리얼 클래스
- 스탭퍼
- English
- Problem Solving
- realclass
- leetcode
- 매일
- 10분
- 읽기
- 잡생각
- 3줄정리
- FIT XR
- 괜찮음
- 개발자
- 영어원서읽기
- 월간
- 만화도
Archives
- Today
- Total
파비의 매일매일 공부기록
[BOJ] 2037 본문
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