https://www.acmicpc.net/problem/21313
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 1024 MB | 234 | 174 | 152 | 74.510% |
문제
문어에게 여덟개의 팔이 있다는 사실은 잘 알려져 있다. 하지만 문어들이 자신의 팔들을 1번, 2번, 3번, ..., 8번
이라고 부른다는 말은 오늘 처음 들었을 것이다! 단, 시계방향으로 오름차순이라던가 하는 규칙은 없다. (물론 그러한 문어도 존재할 수 있다.) 문제에선 편의상 팔 대신 손이라고 부르자.
문어들은 정월 대보름을 맞아 강강술래를 하려고 한다. 각 문어는 양 옆의 서로 다른 두 문어와 손을 맞잡아 원을 만든다. 문어끼리 손을 잡을 때 지켜야 할 예절이 있다.
- 서로 같은 번호의 손을 잡아야 한다.
- 한 문어와 둘 이상의 손을 잡을 수 없다.
- 한 손으로 여러 문어의 손을 잡을 수 없다.
모든 문어들은 예의바르기 때문에 예절을 항상 따른다.
강강술래를 하는 N마리의 문어 중 하나를 골라 1번 문어라 하자. 1번 문어를 기준으로 시계방향 순으로 2번, 3번, 4번, ..., N번 문어라고 부르자. 우리는 인접한 두 문어가 잡은 손의 번호를 이용하여 길이 N의 수열을 만들 것이다. 1번과 2번 문어가 잡은 손의 번호는 1번째 항, 2번과 3번 문어가 잡은 손의 번호는 2번째 항, ..., N - 1번과 N번 문어가 잡은 손의 번호는 N - 1번째 항, N번 문어와 1번 문어가 잡은 손의 번호는 N번째 항이다.
문어의 수 N이 주어질 때, 이렇게 만들 수 있는 수열 중 사전순으로 제일 앞서는 수열을 알아보자. 다음은 문어가 4마리일 때 사전순으로 제일 앞서는 수열인 1 2 1 2
를 만드는 방법이다.
입력
문어의 수 N(4 ≤ N ≤ 1,000)이 주어진다.
출력
N마리의 문어들로 만들 수 있는 길이 N의 수열 중 사전순으로 가장 앞서는 것을 출력한다.
이 때, 수열을 이루는 숫자들을 순서대로 공백으로 구분하여 출력한다.
예제 입력 1 복사
4
예제 출력 1 복사
1 2 1 2
힌트
길이가 같은 두 수열에 대해, 작은 번호부터 시작해 같은 번호의 항끼리 비교하여 더 작은 수가 먼저 나오는 수열이 사전순으로 앞선다.
예를 들어 두 수열 A = {7, 3, 5} 와 B = {7, 4, 1} 가 있다고 하자. A1과 B1은 7로 서로 같다. A2와 B2는 각각 3과 4로 다르며, A2가 더 작으므로 수열 A는 수열 B보다 사전순으로 앞선다.
코드
import java.io.*;
import java.util.*;
public class Main {
static int n;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
boolean odd = false;
if (n % 2 == 1) {
odd = true;
n--;
}
StringBuilder sb = new StringBuilder();
while (n-- > 0) {
if (n % 2 == 1) sb.append("1").append(" ");
else sb.append("2").append(" ");
}
if (odd) sb.append("3");
System.out.println(sb.toString());
}
}
'알고리즘 > [ Baekjoon ]' 카테고리의 다른 글
[ BOJ ][JAVA][6236] 용돈관리 (0) | 2021.06.24 |
---|---|
[ BOJ ][JAVA][15658] 연산자 끼워넣기 (2) (0) | 2021.06.22 |
[ BOJ ][JAVA][20152] Game Addiction (0) | 2021.06.15 |
[ BOJ ][JAVA][17836] 공주님을 구해라 (0) | 2021.06.15 |
[ BOJ ][JAVA][1480] 보석모으기 (0) | 2021.06.14 |