티스토리 뷰
반응형
백준 2037 문자메세지
해설
ABC, DEF, GHI, JKL, MNO, PQRS, TUV, WXYZ 가 각각 같은 번호를 눌러 입력해야하므로 이전에 동일한 번호를 눌렀다면 추가로 대기시간 W
시간을 요구한다.
공백에 대해선 대기시간 W
이 필요하지 않다.
BC, EF, HI .. 등에 대해선 여러번 눌러야하므로 P*required[알파벳]
을 이용해 구할 수 있게 하였음.
입력 받는 것이 조금 까다로울 수 있다.
````C++
#include <stdio.h>
#include
#include <string.h>
using namespace std;
int a[26] =
{
2, 2, 2, 3, 3, 3,
4, 4, 4, 5, 5, 5,
6, 6, 6, 7, 7, 7, 7,
8, 8, 8, 9, 9, 9, 9
};
int required[26] =
{
1, 2, 3, 1, 2, 3,
1, 2, 3, 1, 2, 3,
1, 2, 3, 1, 2, 3, 4,
1, 2, 3, 1, 2, 3, 4
};
char input[ 1002 ];
int main()
{
int p, w;
cin >> p >> w;
getchar();
fgets(input, 1002, stdin);
int len = strlen(input);
if ( input[len-1] == '\n') len--;
int before = -1;
int ans = 0;
for (int i =0; i<len; i++)
{
if ( input[i] == ' ')
{
int key = 1;
ans += p;
before = key;
continue;
}
int al = input[i]-'A';
int key = a[ al ];
// 같은 키일 때
if ( key == before )
{
ans += w;
}
ans += required[ al ]*p;
before = key;
}
printf("%d\n", ans);
} `
반응형
'알고리즘 문제 > implementation' 카테고리의 다른 글
leetcode. 2 Add Two Numbers (0) | 2022.09.05 |
---|---|
백준 2108 통계학 (0) | 2022.09.05 |
CF 1092 C Prefixes and Suffixes (0) | 2018.12.19 |
908B New Year and Buggy Bot (0) | 2017.12.30 |
892B Wrath (0) | 2017.11.18 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 시뮬레이션
- 아레나시뮬레이션
- 자바스크립트
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- Arena
- rosen
- Discrete Mathematics
- 자바스크립트 예제
- 이산 수학
- 로젠
- beginning javascript
- 아레나
- flutter
- grafana cloud
- Simulation
- paul wilton
- 데이터 중심 애플리케이션 설계
- 아레나 시뮬레이션
- 엄청난 인내심과 시뮬레이션을 위한 아레나 툴
- Trie
- 조합 코딩
- 대규모 시스템 설계 기초
- 그라파나
- javascript
- arena simulation
- 이산수학
- 백준
- 명제논리
- Propositional and Predicate Logic
- 최단경로 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함