-
[프로그래머스] 체육복개발공부/코딩테스트 연습문제 2022. 1. 6. 15:13
문제 설명과 제한사항

풀이
import java.util.Arrays; class Solution { public int solution(int n, int[] lost, int[] reserve) { int loster = 0; int reserver = 0; int count = n - lost.length; Arrays.sort(lost); Arrays.sort(reserve); while(lost.length > loster && reserve.length > reserver){ if(lost[loster] < reserve[reserver]){ if(lost[loster] + 1 == reserve[reserver]){ loster++; reserver++; count++; } else{ loster++; } } else if(lost[loster] > reserve[reserver]){ if(lost[loster] - 1 == reserve[reserver]){ loster++; reserver++; count++; } else{ reserver++; } } else if(lost[loster] == reserve[reserver]){ loster++; reserver++; count++; } } return count; } }++
결과 먼저 작성하면
테스트코드 5번 테스트코드 12번 실패다.
우선 처음 봤을때 생각한 건 배열에 담아서 초기화 하고 체육 가능한 학생들만 표시하는
방법을 생각 했다.
그리고 다른 사람의 풀이를 먼저 봤는데, 그 방법이 있어서
정렬로 한번 해볼까? 라는 생각을 했다.
오름차순으로 정렬하고 하나 하나 비교하면서 체육복을 빌린 인원을 카운트
전체 - 도둑맞은인원 + 빌린 인원
여기서 간과했던건 여벌이 있는 학생도 도둑맞았을 경우.
그래서 해당 케이스도 포함했는데,,, 이해를 못해서 1차적으로 포기했다.
다른방법으로 풀 수 있는데 귀찮았다.
'개발공부 > 코딩테스트 연습문제' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 (0) 2022.01.07 [프로그래머스] K번째수 (0) 2022.01.06 [프로그래머스] 폰켓몬 (0) 2022.01.06 [프로그래머스] 완주하지 못한 선수 (0) 2022.01.06 [프로그래머스] 소수 만들기 (0) 2022.01.04