- 문제
https://www.acmicpc.net/problem/1614
- 코드
- #include <iostream>
using namespace std;
#define LL long long
int main() {
LL f = 0;
LL n = 0;
cin >> f;
cin >> n;
LL ans = 0;
if (n != 0) {
if (f == 1 || f == 5) {
ans += n * 8;
if (f == 1) {
cout << ans;
}
else if (f == 5) {
cout << ans + 4;
}
}
else {
if (n % 2 == 0) {
ans += n * 4;
if (f == 2) {
cout << ans + 1;
}
else if (f == 3) {
cout << ans + 2;
}
else if (f == 4) {
cout << ans + 3;
}
}
else {
ans += (n - 1) * 4;
if (f == 2) {
cout << ans + 7;
}
else if (f == 3) {
cout << ans + 6;
}
else if (f == 4) {
cout << ans + 5;
}
}
}
}
else if (n == 0)
{
cout << f - 1;
}
} - 문제 해결 방법
- 시간 초과를 해결했는데도 계속 틀렸습니다가 떠서 당황했던 문제였다. 질문 게시판에서 LL을 쓰라는 말을 듣고 LL이 뭔지 검색했더니 int 형으로는 20억 이상의 숫자를 저장할 수 없었고 long long 데이터형을 사용해야했다...
- 문제해결 방법은 어차피 다친 손가락 사용을 10번 허용하든 100번 허용하든 1000번 허용하든 8번째마다 나오는 손가락 수가 일정하므로(1과 5는 한번, 나머지는 두번) 맨 마지막 8번째의 손가락 수만 더하면 되는 것이었다. 그리고 n이 0일때는 간단하게 손가락 수 -1을 해주면 된다.
'Koala - 12기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python] 5397번 : 키로거 (0) | 2023.10.29 |
---|---|
[백준/C++] 11286번: 절댓값 힙 (0) | 2023.10.29 |
[백준/python] 1715번: 카드 정렬하기 (0) | 2023.10.25 |
[백준/python3] 2559번:수열 (1) | 2023.10.02 |
[백준/Python] 1279번 : 풍선공장 (0) | 2023.10.01 |