"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge

[백준 31067] 다오의 경주 대회 [Java]

kimyoungrok 2025. 3. 21. 19:20
728x90

문제

https://www.acmicpc.net/problem/31067

 


풀이

주어진 배열 A의 모든 요소가 서로 다른 오름차순 배열로 만들기 위한 최소 횟수를 구하는 문제다.

오름차순을 만들기 위해 요소에 K만큼 더할 수 있다.

        // Solve
        int cnt = 0;
        for (int i = 0; i < N - 1; ++i) {
            if (A[i] < A[i + 1]) {
                continue;
            }
            if (A[i] < A[i + 1] + K) {
                A[i + 1] += K;
                ++cnt

만약 조건에 부합하는 배열을 만들 수 없다면 결과를 -1로 변경하고 탐색을 중단하자.

            } else {
                cnt = -1;
                break;
            }
        }

소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/31067.java

728x90