Kim_dev 2023. 6. 14. 20:50

[BOJ 24337] 가희와 탑

 

1. 문제 : https://www.acmicpc.net/problem/24337

 

2. 풀이

일단 순차적으로 양쪽에서 더해주고

남은 값만큼 1을 더해줌

이때 a가 1인 경우 인덱스를 다르게하여 1을 추가해줌

 

3. 코드

import java.util.*;

public class Main {
    static int N, a, b;

    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        a = sc.nextInt();
        b = sc.nextInt();

        List<Integer> li = new ArrayList<>();

        if (a + b > N + 1) {
            System.out.print(-1);
            return;
        }

        for (int i = 1; i < a; i++) {
            li.add(i);
        }
        li.add(Math.max(a, b));

        for (int i = b - 1; i >= 1; i--) {
            li.add(i);
        }

        if (a == 1) {
            while (li.size() < N) {
                li.add(1, 1);
            }
        } else {
            while (li.size() < N) {
                li.add(0, 1);
            }
        }
        for (int i : li) {
            System.out.print(i + " ");
        }
    }

}