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