[프로그래머스, Java] 덧칠하기

2025. 7. 18. 15:16·CodingTest/Programmers

사진을 클릭하면 해당 문제로 이동

💡풀이

import java.util.Arrays;
import java.util.stream.IntStream;

class Solution {
    public int solution(int n, int m, int[] section) {
        boolean[] painted = new boolean[n + 1];

        Arrays.fill(painted, true); // n을 1로 채운 배열로 만든다
        for (int s : section) { // section 위치는 0으로 바꾼다
            painted[s] = false;
        }

        int count = 0;

        // section으로 분기한다
        for (int i = 0; i < section.length; i++) {
            if (painted[section[i]]) continue; // 이미 칠해져있다면 넘어간다

            int start, end;
            if (section[i] + m > painted.length) { // 만약 구역 + m 이 범위를 초과한다면
                if (i + 1 < section.length) continue; // 다음 section이 있다면 넘어가고
                start = section[i] - m + 1;
                end = section[i]; // 끝에서 부터 역순으로 칠함
            } else {
                start = section[i];
                end = section[i] + m - 1;
            }
            IntStream.rangeClosed(start, end).forEach(e -> painted[e] = true);
            count++;
        }

        return count;
    }
}

💡풀이 2

- 그리디

class Solution {
    public int solution(int n, int m, int[] section) {
        int roller = section[0];
        int cnt = 1;
        for(int i = 1; i < section.length; i++) {
            if(roller + m - 1 < section[i]) {
                cnt++;
                roller = section[i];
            }
        }
        return cnt;
    }
}

 

GitHub - okjunghyeon/Programmers_CodingTest: 프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다.

프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다. Contribute to okjunghyeon/Programmers_CodingTest development by creating an account on GitHub.

github.com

'CodingTest > Programmers' 카테고리의 다른 글

[프로그래머스, Java] 소수 찾기  (0) 2025.07.18
[프로그래머스, Java] 과일 장수  (0) 2025.07.18
[프로그래머스, Java] 모의고사  (1) 2025.07.17
[프로그래머스, Java] 2016년  (0) 2025.07.17
[프로그래머스, Java] 폰켓몬  (0) 2025.07.17
'CodingTest/Programmers' 카테고리의 다른 글
  • [프로그래머스, Java] 소수 찾기
  • [프로그래머스, Java] 과일 장수
  • [프로그래머스, Java] 모의고사
  • [프로그래머스, Java] 2016년
devoks
devoks
꾸준히 작성해보자!
  • devoks
    ok's 개발 블로그
    devoks
  • 전체
    오늘
    어제
    • 분류 전체보기 (112) N
      • Backend (15)
        • SpringBoot (0)
        • Java (15)
      • Cs (18) N
      • Infra (0)
        • AWS (0)
        • Docker (0)
      • CodingTest (79)
        • Programmers (79)
  • 링크

    • My GitHub
  • 인기 글

  • 태그

    StringTokenizer
    BufferedReader
    switch
    json
    codingtest
    effectivejava
    BufferedWriter
    java
    programmers
    CS
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
devoks
[프로그래머스, Java] 덧칠하기
상단으로

티스토리툴바