Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1034. 램프
링크
설계
시간 복잡도
N과 M은 최대 50까지이다. K 는 최대 1,000 까지 이므로 모든 경우를 시도해보는 경우
50^1000 번이 소요되므로 제한시간 내에 불가능하다.
따라서 스위치를 껏다 켜는 규칙을 이용해 풀이한다.
공간 복잡도
입력은 한줄씩 주어지므로 string 배열로 입력을 관리한다.
불을 켜는 규칙
모든 경우를 시도해 볼 수 없으므로, 각 행별로 순회를 하며 스위치를 바꿧을 때 얼마나 많은 정답이 나올 수 있는지 검사한다.
이방법은 각 행이 같은것들이 존재하는 경우, 그 행들의 0인 부분만 스위치를 켜면 정답의 후보가 될 수 있음을 이용한다.
먼저 모든 행의 전구가 켜져야 하고, 꺼진 전구의 개수보다 스위치가 더 많은 경우 불가능하다.
또한 K와 0의개수가 서로 홀수, 짝수인지 비교하는 것은
꺼진 전구를 홀수번 반복하면 켜지고, 짝수번 반복하면 꺼지기 때문이다.
따라서 켜야할 남은 전구들을 전부 키기 위해 홀수와 짝수를 검사한다.
정리
고생한 점