주 1회 회사 동기들이랑 알고리즘 스터디를 진행하고 있다.
현재 진행하고 있는 스터디는 오프라인 코딩테스트로도 많이 활용하고 있는 Codility.
각자 풀고 자기가 푼 소스를 리뷰하는 형식인데, 뜻 깊고 보람도 있고 참으로 도움이 많이 된다 :)
뛰어나진 않지만 각 단원 별로 100% 만들기 위해 노력 중이고, 기록 및 공유하기 위해 글을 작성한다.
바로가기 >Codility >MissingInteger
문제 해석 : 순차배열이면 다음 원소값을 리턴, 순차배열이 아니라 중간에 하나 없으면 그 값 리턴하는 문제
문제 풀이 : 배열을 리스트로 바꾸고 (근데 이건 안해도 될 것 같다;) 중간에 빠진 수 찾아서 리턴하도록 코딩했다..
요고 핵심은 "HashSet<>()" 🌝 (참고 : ArrayList 사용시 66%, TreeSet 사용시 77%)
import java.util.*;
class Solution {
public int solution(int[] A) {
// List 에 담기
Set<Integer> set = new HashSet<Integer>();
for (int value : A) {
set.add(value);
}
// 중간에 빠진 수 찾기
for (int i=1; i<=A.length; i++) {
if (!set.contains(i)) {
// i가 존재하지 않으면 (중간에 빠진 수가 존재하면)
return i;
}
}
// 그 외 return (길이+1)
return A.length+1;
}
}
반응형
'Self Dev. > Codility' 카테고리의 다른 글
[Codility] MinAvgTwoSlice 100% (0) | 2019.09.08 |
---|---|
[Codility] PassingCars 100% (0) | 2019.09.08 |
[Codility] PermCheck 100% (0) | 2019.09.08 |
[Codility] TapeEquilibrium 100% (0) | 2019.09.08 |
[Codility] PermMissingElem 100% (0) | 2019.09.08 |
댓글