목차
- 문제
- 내가 푼 방법
- 자바 코드
- 결과 및 회고
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12979
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 내가 푼 방법
내가 생각한 핵심은 전파가 닿지 않는 빈 구간에 최대 전파가 몇 개가 필요할까였다.
따라서 start 변수와 end 변수를 통해 구간 길이를 구해 최대 전파인 2 * w + 1로 나눈 값을 더해주었고,
전파가 닿지 않는 구간이 있으면 안 되므로 나머지가 있는 경우에는 +1을 해주어야 했다.
if (start < end) {
answer += ((end - start) / (2*w + 1));
answer += ((end - start) % (2*w + 1) == 0) ? 0 : 1;
}
3. 자바 코드
깃허브 풀이 주소
class Solution {
public int solution(int n, int[] stations, int w) {
int answer = 0;
int start = 0;
int end = 0;
for (int station : stations) {
end = station - w - 1;
if (start < end) {
answer += ((end - start) / (2*w + 1));
answer += ((end - start) % (2*w + 1) == 0) ? 0 : 1;
}
start = station + w;
}
end = n;
if (start < end) {
answer += ((end - start) / (2*w + 1));
answer += ((end - start) % (2*w + 1) == 0) ? 0 : 1;
}
return answer;
}
}
4. 결과 및 회고
처음에 start 변수와 end 변수 범위를 확인 안 해서 통과하지 못했는데, 코드에서 생길 수 있는 반례도 반드시 고민해보장.
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 베스트앨범 (0) | 2023.05.11 |
---|---|
[JAVA] 프로그래머스 - 롤케이크 자르기 (0) | 2023.05.11 |
[JAVA] 프로그래머스 - 소수 찾기 (0) | 2023.05.09 |
[JAVA] 프로그래머스 - 가장 큰 수 (0) | 2023.05.09 |
[JAVA] 프로그래머스 - 숫자 변환하기 (0) | 2023.05.09 |
댓글