https://www.acmicpc.net/problem/1034
import sys
input = sys.stdin.readline
N, M = map(int, input().split(" "))
li = list()
for _ in range(N):
li.append(input().strip())
K = int(input())
dap = 0
for i in range(N):
row = li[i]
zero_count = row.count('0')
# 같은 패턴이고 0개수가 K보다 작으며 남은 횟수가 짝수면 카운트
if zero_count <= K and (K - zero_count) % 2 == 0:
cnt = 0
for j in range(N):
if li[j] == row:
cnt += 1
# 카운트 개수 최대값 구하기
dap = max(dap, cnt)
print(dap)
- 다른 방법 (Counter)
import sys
from collections import Counter
input = sys.stdin.readline
N, M = map(int, input().split(" "))
li = list()
for _ in range(N):
li.append(input().strip())
K = int(input())
dap = 0
# 같은 행 패턴 개수 세기
pattern_counter = Counter(li)
for pattern, count in pattern_counter.items():
zero_count = pattern.count('0')
# 0개수가 K보다 작으며 남은 횟수가 짝수면 패턴 개수 비교
if zero_count <= K and (K - zero_count) % 2 == 0:
dap = max(dap, count)
print(dap)'코딩테스트 > 코딩테스트 문제풀이' 카테고리의 다른 글
| [Python] 백준 <16472-고냥이> (0) | 2025.07.23 |
|---|---|
| [Python] 백준 <1062-가르침> (0) | 2025.07.23 |
| [Python] 백준 <9663-N-Queen> (0) | 2025.07.17 |
| [Python] 백준 <14500-테트로미노> (0) | 2025.07.17 |
| [Python] 백준 <2293-동전 1> (0) | 2025.07.16 |