[BOJ] 1034번: 램프

https://www.acmicpc.net/problem/1034


각 행에 대해, 그 행의 전구를 켜려면 그 행에서 꺼져있는 열을 전부 눌러야합니다. 잘 생각해보면 결국 초기 상태가 다른 행 i, j는 절대 동시에 켜져있는 행이 될 수 없습니다. 그렇기 때문에 K번 눌러 켜져있게 만들 수 있는 행들에 대해, 초기 상태가 가장 많이 동일한 것의 갯수를 반환하면 됩니다.


특정 행이 K번 눌러 켜져있게 만들 수 있는지 판단하는 방법은


i) 그 행에 있는 0의 갯수와 K가 2로 나눈 나머지가 동일한가?

ii) 그 행에 있는 0의 갯수가 K 이하인가?


이 두가지를 살펴보면 됩니다.


Bitmask를 이용해 상태를 long long 변수 하나에 저장했습니다.


https://github.com/blisstoner/BOJ/blob/master/1034.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 1287번: 할 수 있다  (0) 2018.03.13
[BOJ] 1081번: 합  (0) 2018.03.12
[BOJ] 1124번: 언더프라임  (0) 2018.03.12
[BOJ] 1033번: 칵테일  (0) 2018.03.11
[BOJ] 6236번: 용돈 관리  (0) 2018.03.07
[BOJ] 15515번: Tap Titanz at Moloco  (0) 2018.03.05
  Comments