[백준 11003] 최솟값 찾기 #220
ghdcksgml1
started this conversation in
1일 1알고리즘
Replies: 3 comments 1 reply
-
|
gimoZZi !! |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
바보 같은 난 눈물이 날까 ~ |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
결국 컴구시험은 잘 쳤는데 시험시간 3시간 반 레전드였습니다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
컴퓨터구조론 공부하다가 너무 재미없어서 재밌는 알고리즘을 풀었다.
- 문제 아이디어
이 문제는 증가하는 구간의 최솟값을 구하는 비교적 간단한(?) 문제이다.
이 문제를 보고 세그먼트 트리 아니면 슬라이딩 윈도우를 통해 풀 수 있을 것 같았다.
그래서 가장 익숙한 세그먼트 트리로 풀었는데, 20%에서 시간 초과가 나서 슬라이딩 윈도우로 풀었다. ㅜ ( 아마 N <= 5,000,000이라 logN이 꽤 커서 시간초과가 난듯하다.)
다음과 같은 원리로 풀었다. 자료구조는 덱을 사용하여
루프를 돌면서 {값,인덱스}를 넣어준다. 그러면서, 덱의 맨앞의 인덱스가 i-L보다 작거나 같은게 있으면 없애주고(덱에 Ai-L+1 ~ Ai값만 넣어주기 위해),
그러면서 덱의 맨 마지막 값이 현재 arr값보다 작은게 있으면 모두 삭제한다.
이렇게 되면, Ai-L+1 ~ Ai의 최솟값이 덱의 맨 앞에있고, 덱의 앞부분을 지워도 다음 최솟값이 나오게 만들어줄 수 있다.
- 소스코드
세그먼트 트리 ( 시간초과 )
슬라이딩 윈도우 (성공)
gimoZZi
Beta Was this translation helpful? Give feedback.
All reactions