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
- 알고리즘
- spring DI
- ObjectOptimisticLockingFailureException
- 멀티모듈 테스트컨테이너
- RefreshToken
- java
- DI
- netty
- 백준
- 소수찾기 java
- Spring Cloud Gateway
- S3
- interface
- AccessToken
- multimodule testcontainers
- redissonlock aop
- springsecurity
- @transactional
- 우아한 테크러닝
- OptimisticLock
- 낙관적 락 롤백
- spring aop
- jpa
- aop
- TestContainers
- ObjectOptimisticLockingFailureException 처리
- Invalid property 'principal.username' of bean class
- kotest testcontainers
- 낙관적 락 재시도
- 형상관리
Archives
- Today
- Total
조급하면 모래성이 될뿐
2018 윈터코딩 쿠키 구입 본문
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/49995
나의 풀이
첫째는 l ~ m 까지 둘째는 m+1 ~ r 까지의 범위에서 과자를 받을 수 있다.
여기서 주목할 것은 형은 m에서 끝나고, 동생은 m+1에서 시작한다는 것이다.
** 결국 형은 m부터 최대 첫번째까지 받을 수 있고,동생은 m+1부터 최대 마지막번까지 받을 수 있다.
순서대로 위의 식(**)을 적용하여 max값을 구해 갈 것이다.
예를들어 [ 1,1,11,11,2 ]가 입력받았다면 아래처럼 처리되는 것이다.
형의 index | 동생의 index | 형의 값 | 동생의 값 | max |
0 | 1 | 1 | 1 | 1 |
1 | 2 | 1 | 11 | 1 |
0 | 2 | 2 | 11 | 1 |
2 | 3 | 11 | 11 | 11 |
1 | 3 | 12 | 11 | 11 |
1 | 4 | 12 | 13 | 11 |
0 | 4 | 13 | 13 | 13 |
코드
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
package Programmers;
public class BuyCookie {
public static void main(String[] args) {
int[] cookie = {
1,1,11,11,2
};
int answer = solution(cookie);
System.out.println(answer);
}//main
public static int solution(int[] cookie) {
int answer = 0;
// cookie전체 보기
for ( int i = 0 ; i < cookie.length-1; i++ ) {
// i를 기준으로 이전 값을 더해간다.
int cur = i ;
int curSum = cookie[cur] ;
// i+1을 기준으로 이후 값을 더해간다.
int next = i+1 ;
int nextSum = cookie[next];
while ( true ) {
if ( curSum == nextSum ) {
answer = Math.max( answer, curSum );
}
if ( curSum <= nextSum && cur > 0 ) {
cur--;
curSum += cookie[cur];
}else if ( nextSum <= curSum && next < cookie.length-1 ) {
next++;
nextSum += cookie[next];
}else break;
}
}
return answer;
}
}//class
|
cs |
제출 결과
반응형
'Algorithm' 카테고리의 다른 글
2018 윈터코딩 방문 길이 (0) | 2019.10.24 |
---|---|
2018 윈터코딩 스킬트리 (0) | 2019.10.24 |
[백준] 1966 프린터 큐 (0) | 2019.10.15 |
프렌즈4블록 (0) | 2019.08.22 |