반응형
https://www.acmicpc.net/problem/19940
19940번: 피자 오븐
각각의 테스트 케이스마다 5개의 정수를 한 줄에 공백으로 구분해서 출력한다. 이 정수는 입력으로 주어진 시간을 만들기 위해서 ADDH, ADDT, MINT, ADDO, MINO 버튼을 누르는 횟수를 출력한 것이다. 최
www.acmicpc.net
[ 문제풀이 ]
1. 1분에서 65분까지의 최소 누르는 횟수를 저장합니다.
2. N을 60으로 나눈 값을 ADDH에 더해주고, N을 60으로 나눈 나머지 값을 이용하여 최소 누르는 횟수를 출력합니다.
[ 소스코드 ]
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #include<iostream> #include<queue> using namespace std; int T, N; int visited[66]; struct node { int cur; int ans[5] = { 0 }; }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> T; for (int t = 0; t < T; t++) { cin >> N; int temp = N / 60; N %= 60; queue<node> q; fill(visited, visited + 66, 0); q.push({ 0,{temp} }); visited[0] = 1; while (!q.empty()) { const int cur = q.front().cur; int ans[5] = { 0 }; for (int i = 0; i < 5; i++) { ans[i] = q.front().ans[i]; } q.pop(); if (cur == N) { for (int i = 0; i < 5; i++) { cout << ans[i] << ' '; } cout << '\n'; break; } if (cur - 1 >= 0 && visited[max(0, cur - 1)] == 0) { visited[cur - 1] = 1; q.push({ cur - 1, {ans[0],ans[1],ans[2],ans[3],ans[4] + 1} }); } if (cur + 1 <= 65 && visited[cur + 1] == 0) { visited[cur + 1] = 1; q.push({ cur + 1, {ans[0],ans[1],ans[2],ans[3] + 1,ans[4]} }); } if (cur - 10 >= 0 && visited[cur - 10] == 0) { visited[cur - 10] = 1; q.push({ cur - 10, {ans[0],ans[1],ans[2] + 1,ans[3],ans[4]} }); } if (cur + 10 <= 65 && visited[cur + 10] == 0) { visited[cur + 10] = 1; q.push({ cur + 10, {ans[0],ans[1] + 1,ans[2],ans[3],ans[4]} }); } if (cur + 60 <= 65 && visited[cur + 60] == 0) { visited[cur + 60] = 1; q.push({ cur + 60, {ans[0] + 1,ans[1],ans[2],ans[3],ans[4]} }); } } } } | cs |
반응형
'백준' 카테고리의 다른 글
[ 백준 ] 15967번 - 에바쿰 (C++) (0) | 2023.08.02 |
---|---|
[ 백준 ] 16978번 - 수열과 쿼리 22 (C++) (0) | 2023.08.01 |
[ 백준 ] 14852번 - 타일 채우기 3 (C++) (0) | 2023.07.30 |
[ 백준 ] 16954번 - 움직이는 미로 탈출 (C++) (0) | 2023.07.29 |
[ 백준 ] 16509번 - 장군 (C++) (0) | 2023.07.28 |