-
백준 1034 - 램프 (Python)BOJ PS/Python 2022. 12. 7. 13:36
애드혹 문제. 재미있었다. 어차피 어떻게 키든 한 종류의 행밖에 모두 켤 수 없다.
따라서 dictionary에 행의 종류와 그 개수를 저장하고, 켤 수 있는 램프 중 가장 개수가 많으면 된다.
램프의 상태를 dictionary로 받는다. 일종의 counter 쓰기 귀찮아서 그냥 만들었다.
위의 for문은 예외 처리가 필요 없는, 즉 하나의 열로만 이루어지지 않은 기본 케이스이다.
램프를 켤 수 있을 지 볼 때 고려해야 할 것은 총 두개다.
- k가 0의 개수, 즉 꺼져 있는 램프의 개수 이상인가?
- k와 0의 개수는 짝수/짝수이거나 홀수/홀수인가?
k와 0의 개수를 2로 나눈 나머지가 다르면, 하나의 램프가 남게 된다.
만약에 k가 더 크다면, 2로 나눈 나머지가 동일하기만 하다면 공연히 0이나 1을 껐다켰다 하면 된다.
다만 하나의 열로 이루어진 경우 성가시다.
일단 숫자가 하나로 이루어졌을 때는 당연히 n 또는 0일 것이다.
다만 0과 1이 모두 있을 때는, 경우의 수를 나눠 몇 개의 램프가 켜질지를 확인한다.
'BOJ PS > Python' 카테고리의 다른 글
백준 1260 - DFS와 BFS (Python) (0) 2022.12.08 백준 1089 - 스타트링크 타워 (Python) (0) 2022.12.07 백준 1389 -케빈 베이컨의 6단계 법칙 (Python) (0) 2022.12.07 백준 1992 - 쿼드트리 (Python) (0) 2022.12.07 백준 11403 - 경로 찾기 (Python) (0) 2022.12.07