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
- 백준13417
- 백준1802
- 백준 타일코드
- Codility
- 백준17124
- java
- 백준
- LangChain
- export changeLog
- 백준2098
- liquibse
- streamlit
- 두 개의 배열
- 백준20126
- 백준1461
- 백준1720
- ChatOpenAI
- 백준3078 풀이
- generateChangeLog
- 백준11332
- 백준16937
- 백준 도서관
- BaseCallbackHandler
- Frog River One
- 두 스티커
- 외판원순회
- 백준 시간초과
- 교수님의 기말고사풀이
- 백준3078
- streaming chat
Archives
- Today
- Total
tempcru 삽질기록
Codility - Tape Equilibrium 풀이 (java) 본문
Codility - Tape Equilibrium 풀이 (java)
https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/
- 배열을 둘로 나눴을 때 부분배열의 차가 최소가 되는 값을 찾아라
풀이
- SUM[i] = A[0] + A[1] + ... + A[i] 인 배열을 만들고
- P 연산시 sum[i], sum[N-1] - sum[i] 의 차를 계산해주면된다
public class TapeEquilibrium {
public static void main(String[] args) {
int[] A = {-1000,1000};
System.out.println(solution(A));
}
private static int solution(int[] A) {
// init
int result = Integer.MAX_VALUE;
int N = A.length;
// pre calc
int[] sum = new int[N];
sum[0] = A[0];
for(int i = 1; i < N; i++) {
sum[i] = sum[i-1] + A[i];
}
// logic
int p1, p2, difference ;
for(int i = 0; i < N-1; i++) {
p1 = sum[i];
p2 = sum[N-1] - sum[i];
difference = (p1 - p2);
if(difference < 0) difference *= -1;
if(result > difference) result = difference;
}
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 |