Skip to content

Conversation

@sksn12
Copy link
Contributor

@sksn12 sksn12 commented Dec 15, 2025

🚀 이슈 번호

Resolve: {#2251}

🧩 문제 해결

스스로 해결:

🔎 접근 과정

문제 해결을 위한 접근 방식을 설명해주세요.

  • 🔹 어떤 알고리즘을 사용했는지 : 그리디
  • 🔹 어떤 방식으로 접근했는지 : 같은 부호 일때만 증가분을 계산하고 아니면 pass, 이전 줄보다 더 많이 고쳐야 하는 부분만 추가로 세는 방식

⏱️ 시간 복잡도

시간 복잡도 분석을 작성해주세요.
최악의 경우 수행 시간은 어느 정도인지 분석합니다.

  • Big-O 표기법: O(N)
  • 이유:

💻 구현 코드

package 백준;

import java.io.*;
import java.util.*;

public class 코딩은예쁘게 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N=Integer.parseInt(st.nextToken());
        int[] change = new int[N];
        int[] fix = new int[N];
        int[] diff = new int[N];

        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            change[i] = Integer.parseInt(st.nextToken());
        }

        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            fix[i] = Integer.parseInt(st.nextToken());
            diff[i] = change[i] - fix[i];
        }

        // 첫 번째 값
        int answer = Math.abs(diff[0]);

        for (int i = 1; i < N; i++) {
            // 같은 부호일 때만 증가분을 계산 -> 마이너스끼리 곱하면 0보다 크고 양수끼리 곱해도 0보다 크니깐
            if (diff[i] * diff[i - 1] > 0) {
                answer += Math.max(0, Math.abs(diff[i]) - Math.abs(diff[i - 1]));
            } else {
                // 부호가 바뀌면 새로 시작
                answer += Math.abs(diff[i]);
            }
        }

        System.out.println(answer);

    }
}

@sksn12 sksn12 self-assigned this Dec 15, 2025
@sksn12 sksn12 linked an issue Dec 15, 2025 that may be closed by this pull request
@alirz-pixel alirz-pixel self-requested a review December 15, 2025 14:49
Copy link
Member

@alirz-pixel alirz-pixel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

증가분을 구한다는 생각은 못했는데
아이디어가 너무 참신합니다

좋은 접근 및 코드 감사드립니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

251215 : 코딩테스트

3 participants