728x90
https://yummy0102.tistory.com/108
오늘은 위 문제를 자바로 다시 풀었다
알고리즘은 기억해서 그냥 풀었는데 자꾸 테케 오류가 났다,,,
고민한 결과 한 학생이 가질 수 있는 체육복은 모두 1로 초기화했을 때, 최대 2개이고 최소 1개이다
그래서 부등호를 사용하지 않고 그냥 등호로 2개면 빌려주고, 0개면 받는 식으로 구현하였고, answer를 구할 때는 1개 이상이면 체육복이 있다고 세도록 했다
사실 정확한 테케는 몰라서 반례는 잘 모르지만 암튼 부등호에서 오류가 나는 것은 확실해서 이렇게 수정했더니 맞았당!
자바 코드)
import java.util.Arrays;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = 0;
int[] student = new int[n];
Arrays.fill(student, 1);
for(int l : lost) {
student[l-1] -= 1;
}
for(int r : reserve) {
student[r-1] +=1;
}
for(int i=0;i<n;i++) {
if(student[i]==2) {
if(i!=0 && student[i-1]==0) {
student[i-1] = 1;
student[i] = 1;
}
}
if(student[i]==2) {
if(i!=n-1 && student[i+1]==0) {
student[i+1]=1;
student[i]=1;
}
}
}
for(int i=0;i<n;i++) {
if(student[i]>=1) {
answer++;
}
}
return answer;
}
}
그럼 빠잉!
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[해시] Level 2 전화번호 목록 - JAVA (0) | 2022.02.12 |
---|---|
[해시] Level 1 완주하지 못한 선수 - JAVA (0) | 2022.02.11 |
[정렬] Level 1 K번째 수 (0) | 2022.02.09 |
[DP] Level 3 N으로 표현 (0) | 2022.02.08 |
[깊이/너비 우선 탐색(DFS/BFS)] Level 3 여행 경로 (0) | 2022.02.07 |
댓글