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 |
Tags
- sort
- 코딩테스트
- mysql
- 백준 16935
- 백준 11723
- java 내림
- java 반올림
- 프로그래머스 연속된 수의 합 java
- 백준 17425
- Arrays
- Algorithm
- 프로그래머스 도둑질 java
- 0으로 채우기
- Codility
- 백준 15661
- 네트워크
- Math.floor()
- 알고리즘
- 백준 16927
- time complexity
- 프로그래머스 숫자의 표현 java
- 프로그래머스 네트워크 java
- 자바
- 백준 14391
- java
- java 올림
- 백준 4375
- 프로그래머스 옹알이 java
- 백준 18290
- Math.ceil()
Archives
- Today
- Total
취미처럼
[Codility] Lesson 3. Time Complexity - TapeEquilibrium 본문
배열에는 첫 번째 파트와 두 번째 파트가 있다.
0부터 배열의 차수까지가 첫번째 파트, 그 다음부터 마지막까지가 두번째 파트이다.
첫번째 파트에서 두번째 파트를 마이너스 한 값의 절대값 중에서 최소값을 구한다.
int[] A = {1,2,3,4,5};
0차 (1) - (2 + 3 + 4 + 5) = |-13|
1차 (1 + 2) - (3 + 4 + 5) = |-9|
2차 (1 + 2 + 3) - (4 + 5) = |-3|
3차 (1 + 2 + 3 + 4) - (5) = |5|
public int solution(int[] A) {
int total = 0;
int first = 0;
int second = 0;
int min = Integer.MAX_VALUE;
for (int i = 0; i < A.length; i++) {
total += A[i];
}
for (int i = 1; i < A.length; i++) {
first += A[i - 1];
second = total - first;
min = Math.min(min, Math.abs(first - second));
}
return min;
}
'Algorithm > Codility' 카테고리의 다른 글
[Codility] Lesson 4. Counting Elements - FrogRiverOne (0) | 2021.03.29 |
---|---|
[Codility] Lesson 3. Time Complexity - PermMissingElem (0) | 2021.03.26 |
[Codility] Lesson 3. Time Complexity - FrogJmp (0) | 2021.03.26 |
[Codility] Lesson 2. Arrays - OddOccurrencesInArray (0) | 2020.02.19 |
[Codility] Lesson 2. Arrays - CyclicRotation (0) | 2020.02.19 |
Comments