*문제 출처는 백준에 있습니다.
문제 제목: 램프 / 1034번 (골드 4단계)
문제 사이트: https://www.acmicpc.net/problem/1034
문제 설명
나의 풀이
# 입력받기
n, m = map(int, input().split())
lst = [input().strip() for _ in range(n)]
k = int(input())
max_cnt = 0
# 모든 행에 대해 반복
for row in range(n):
# 현재 행의 0의 개수 세기
zero_count = lst[row].count('0')
# 이 행과 똑같은 값을 가진 행의 개수 세기
col_light_cnt = 0
# 0의 개수와 k의 짝수/홀수 조건을 확인
if zero_count <= k and (k - zero_count) % 2 == 0:
for other_row in range(n):
if lst[row] == lst[other_row]: # 두 개의 행이 같으면
col_light_cnt += 1 # 1을 더해준다
max_cnt = max(max_cnt, col_light_cnt) # 최대값보다 크면 업데이트
print(max_cnt)
※ 알아야 할 것
최대로 켤 수 있는 램프들의 종류를 보면 모양이 같다는 사실을 알 수 있다.
ex)
0110
0110
1010
0110
위 예시에서 k = 2일 때 0110 종류의 램프를 켜는 것이 가장 많은 값을 얻을 수 있다.
즉 이 문제의 핵심은 k번의 스위치를 눌러서 켤 수 있는 램프 중에서 가장 많이 나오는 램프를 선택하면 된다.
'코딩테스트(프로그래머스 & 백준) > 백준-Python' 카테고리의 다른 글
백준 / 쉬운 최단거리 / 14940번 / Python (0) | 2024.10.18 |
---|---|
백준 / 전쟁 - 땅따먹기 / 1270번 / Python (0) | 2024.10.17 |
백준 / 나머지 합 / 10986번 / Python (3) | 2024.10.09 |
백준 / 과일 탕후루 / 30804번 / Python (2) | 2024.10.04 |
백준 / 치즈 / 2638번 / Python (1) | 2024.10.03 |