문제: https://school.programmers.co.kr/learn/courses/30/lessons/161989
1. 코드
class Solution {
public int solution(int n, int m, int[] section) {
int answer = 0;
int painted = 0;
for(int start : section) {
if(painted <= start) {
painted = start + m;
answer++;
}
}
return answer;
}
}
2. 설명
이 문제는 최대한 간단히 생각해야 쉽게 해결 할 수 있습니다.
for(int start : section) {
if(painted <= start) {
painted = start + m;
answer++;
}
}
덧칠할 장소를 위치에서 페인트 칠을 롤러의 길이만큼 진행한 뒤 다음 위치가 이미 지나갔다면 이 후에 있는 위치부터 또 다시 롤러의 위치만큼 진행하는데 페인트 칠을 진행 횟수만 answer에 증가시키면 문제가 해결됩니다.
3. 정리
- 문제를 너무 어렵게 생각하지 말자
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 17682번: [1차] 다트 게임 [Java] (0) | 2023.08.02 |
---|---|
프로그래머스 - 136798번: 기사단원의 무기 [Java] (0) | 2023.08.01 |
프로그래머스 - 42889번: 실패율 [Java] (0) | 2023.07.30 |
프로그래머스 - 12921번: 소수 찾기 [Java] (0) | 2023.07.29 |
프로그래머스 - 12977번: 소수 만들기 [Java] (0) | 2023.07.28 |