Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- streamlit
- 두 개의 배열
- 백준 시간초과
- java
- 백준
- 백준3078 풀이
- generateChangeLog
- 백준1720
- 백준2098
- ChatOpenAI
- 두 스티커
- 백준 도서관
- streaming chat
- 백준16937
- 외판원순회
- 백준3078
- BaseCallbackHandler
- 백준1461
- 백준 타일코드
- 백준17124
- 교수님의 기말고사풀이
- 백준20126
- Codility
- liquibse
- LangChain
- 백준1802
- Frog River One
- 백준13417
- export changeLog
- 백준11332
Archives
- Today
- Total
tempcru 삽질기록
[Codility] Lesson 4 - Frog River One 풀이 (java) 본문
Codility Frog River One 문제풀이
문제 요약
https://app.codility.com/programmers/lessons/4-counting_elements/frog_river_one/
- 배열 A[N] 와 int X가 주어진다
- N, X 은 최대 10만, 최소 1, not empty 이다
- 배열 A[N] 값은 최소 1, 최대 X 이다
- A[0] 에서 시작하여 A[N] 까지 값을 확인한다
- 1 ~ X 범위의 모든 숫자를 확인가능한 A 배열의 index값을 출력하라
- 만약 숫자 누락이 발생한다면 -1 을 출력하라
풀이
- N 이 최대 10만 밖에 안되기 때문에 값의 유무를 배열에 저장하면된다.
- Exist[i] = i번 값이 나타난 최소 index
- O(N) 만큼의 시간복잡도를 사용하여 Exist[i] 배열에 반영하고
- O(N) 만큼의 시간복잡도를 사용하여 누락여부 및 최소 인덱스( Max(Exist[i]))를 계산한다.
- 최종 시간복잡도 O(2N)
class Solution {
public int solution(int X, int[] A) {
int[] countArray = new int[X+1];
int result = 0;
// 초기값 -1 세팅
for(int i = 1; i < countArray.length; i++) {
countArray[i] = -1;
}
// A[i]는 countArray의 index로 사용
// i는 countArray의 value로 사용
for(int i = 0; i < A.length; i++) {
if(countArray[A[i]] == -1
|| countArray[A[i]] >= i) {
countArray[A[i]] = i;
}
}
// countArray 을 탐색하며 -1 리턴 조건 탐색
for(int i = 1; i < countArray.length; i++) {
if(countArray[i] < 0) {
result = -1;
break;
}else if(result < countArray[i]){
result = countArray[i];
}
}
return result;
}
}
'Coding Test > Codility' 카테고리의 다른 글
Codility - Binary Gap 풀이 (java8) (0) | 2022.01.05 |
---|---|
Codility - Cyclic Rotation 풀이 (java8) (0) | 2022.01.05 |
Codility - Odd Occurrences In Array 풀이 (Java8) (0) | 2022.01.05 |
Codility - Frog Jmp 풀이 (java) (0) | 2022.01.05 |
Codility - Perm Missing Elem 풀이 (java) (0) | 2022.01.05 |