[백준 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
-
컴퓨터구조론 공부하다가 너무 재미없어서 재밌는 알고리즘을 풀었다.
- 문제 아이디어
이 문제는 증가하는 구간의 최솟값을 구하는 비교적 간단한(?) 문제이다.
이 문제를 보고 세그먼트 트리 아니면 슬라이딩 윈도우를 통해 풀 수 있을 것 같았다.
그래서 가장 익숙한 세그먼트 트리로 풀었는데, 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