Uh oh!
There was an error while loading. Please reload this page.
[2023-09-27] sumin #268 - #282
Conversation
Woo-Yeol
left a comment
There was a problem hiding this comment.
뭔가 지수님의 코드가 조금 더 최적화 되어 있는 것 같았습니다. right를 증가시키면서 홀수의 갯수를 증가시키고 k개 이상의 홀수를 찾아서 left를 옮겨주는 과정의 메카니즘이 이 문제의 정해였던 것 같네요! 고생하셨습니다 수민님!
There was a problem hiding this comment.
생각해보니 while문을 해줄 필요 없이 if문으로만 해도 되네.... 해서 코드를 수정했습니다~!🤣
ksumini
commented
Sep 27, 2023
이 문제 진짜 머리 아프더라구요, for문으로 짰는데 지수님의 while문이 좀더 직관적으로 이해하기 쉬운 것 같아요 최적화 너무 어려웠던 문제..😵 |
There was a problem hiding this comment.
저는 이 부분을 while문으로 구현했는데, 어차피 right가 모든 원소를 훑고 지나가야 하는거면 for문으로 구현하는 것이 구현 측면에서 조금은 직관적이고 편할 수도 있을 것 같다는 생각이 들어요! (while 문으로 하면 일일이 right += 1을 해줘야 하기 때문에?) 근데 취향이긴 한 것 같습니다 ㅎㅎ
There was a problem hiding this comment.
저도 개인적으로 while True 보다는 for 문을 선호하는 편이긴 합니다 ㅎㅎ
There was a problem hiding this comment.
저도 개인적으로 while True 보다는 for 문을 선호하는 편이긴 합니다 ㅎㅎ
PR Summary
풀이시간: 50분
<input>
n: 수열 s의 길이 (1 <= n <= 1,000,000)
k: 삭제할 수 있는 최대 횟수 (1 <= k <= 100,000)
s: 수열 (1 <= 원소의 값 <= 1,000,000)
<solution>
최대 K개의 수를 삭제할 수 있다면, 연속한 짝수 부분수열의 길이를 길게 하기 위해 홀수만 K번 삭제를 해야 한다.
-> 홀수를 K개 포함하는 부분수열 중에서 가장 긴 것을 찾는 문제
<시간복잡도>
O(n)