-
[2816] 디지털 티비BOJ 2021. 12. 14. 07:41
https://www.acmicpc.net/problem/2816
2816번: 디지털 티비
2012년 12월 31일 새벽 4시부터 지상파 아날로그 TV방송이 종료되었다. TV를 자주보는 할머니를 위해서, 상근이네 집도 디지털 수신기를 구입했다. 원래 상근이네 집에는 KBS1과 KBS2만 나왔다. 할머니
www.acmicpc.net
<문제>
연산 1과 4만 사용해서 구현했다.
연산1은 KBS1과 KBS2를 찾아 내려가는 과정에서 수행하므로, 시행 횟수는 2N을 넘지 않는다.
연산 4는 화살표가 KBS1/KBS2를 가리키는 상태에서, 이를 1/2번째 위치로 옮길때 수행하니 역시 2N을 넘지 않는다.
그렇기에 전체 시행 횟수는 4N보다 작고, 문제의 조건이 N<=100이니
방법의 길이가 500보다 작다는 제약사항을 충족한다.
<소스코드>
12345678910111213141516171819202122232425262728293031323334353637383940#include <bits/stdc++.h>using namespace std;int n;string s[101];int main(void) {cin >> n;int i;for (i = 0; i < n; i++) cin >> s[i];int idx;for (i = 0; i < n; i++) {if (s[i] == "KBS1") {if (i == 0) goto skip1;idx = i;break;}}for (i = 0; i < idx; i++) cout << 1;for (i = idx; i >= 1; i--) {swap(s[i], s[i - 1]);cout << 4;}skip1:for (i = 0; i < n; i++) {if (s[i] == "KBS2") {if (i == 1) goto skip2;idx = i;break;}}for (i = 0; i < idx; i++) cout << 1;for (i = idx; i >= 2; i--) {swap(s[i], s[i - 1]);cout << 4;}skip2:return 0;}cs 'BOJ' 카테고리의 다른 글
[6543] 그래프의 싱크 (0) 2021.12.17 [1292] 쉽게 푸는 문제 (0) 2021.12.15 [21313] 문어 (0) 2021.12.10 [1402] 아무래도이문제는A번난이도인것같다 (0) 2021.12.09 [10219] Meats On The Grill (0) 2021.12.09