Algorithm, boj, 디지털티비(2816)
문제유형
- greedy
해결
- 스페셜 저지이므로 답이 여러개일수있다
- kbs1과 kbs2의 위치를 찾는다
- kbs1까지 1로 내려가서 4로 올린다
- 만약 kbs2 , kbs1 순서이면 kbs1이 4로 올리면서 kbs2를 한칸 아래로 보내기때문에 kbs2위치에 +1을 해준다
package org.baekjoon;
import java.io.*;
public class test2816_greedy_digitalTv {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] k = new int[2];
for (int i=0; i<N ; i++) {
String channel = br.readLine();
if(channel.equals("KBS1"))
k[0] = i;
else if(channel.equals("KBS2"))
k[1] = i;
}
// kbs2, kbs1 순서이면 kbs1이 올라가면서 kbs2를 아래로 한칸 내린다
if(k[0] > k[1]) k[1]++;
for(int i=0; i<2; i++) {
for(int j=0; j<k[i]; j++) {
System.out.print("1");
}
if(i==1) k[1]--;
for(int j=0; j<k[i]; j++) {
System.out.print("4");
}
}
}
}
Reference