반응형
문제
사파리 투어를 나선 건덕이는 얼룩말에 관심이 많았다. 특히 얼룩말의 몸통에 검은 줄이 많을수록 얼룩말이 아름답다고 생각했다.
건덕이는 얼룩말들의 털 상태를 0과 1로 기록한다. 0은 털이 흰 부분을, 1은 털이 검은 부분을 의미한다.
검은 줄의 개수는 연속하는 검은 부분의 개수이다. 예를 들어, 건덕이가 한 얼룩말의 털 상태를 01101110101로 기록했다면, 이 얼룩말은 4 개의 검은 줄을 가지고 있다.
건덕이는 모든 얼룩말에 대한 털 상태를 기록해 두었다. 건덕이가 생각하기에 가장 아름다운 얼룩말은 몇 개의 줄을 가졌고, 그런 얼룩말이 총 몇 마리가 있을까?
입력
첫째 줄에 얼룩말의 개체수 N , 얼룩말의 몸통 길이를 나타내는 정수 L 이 공백으로 구분되어 주어진다. (1≤N,L≤1000)
이어지는 N 개의 줄에 건덕이가 기록한 길이 L 의 얼룩말의 털 상태를 나타내는 문자열이 한 줄에 하나씩 주어진다. 문자열은 0과 1로만 이루어져 있다.
출력
건덕이가 생각하는 가장 아름다운 얼룩말이 가지고 있는 검은 줄의 개수와 그런 얼룩말의 개체수를 공백으로 구분하여 출력한다.
예제 입력 1 복사
5 9
110010101
101010100
000011111
011011010
100100101
예제 출력 1 복사
4 3
11이 이어져있는 것보다 01 기준으로 갯수를 세는 것이 편하다.
딕셔너리를 이용해서 갯수 저장
n, l = map(int, input().split())
a = {}
for _ in range(n):
s = '0' + input()
cnt = 0
for c in range(1, len(s)):
if s[c-1] == '0' and s[c] == '1':
cnt += 1
if cnt in a.keys():
a[cnt] += 1
else:
a[cnt] = 1
v = sorted(a.items(), reverse=True)
print(v[0][0], v[0][1])
반응형
'알고리즘' 카테고리의 다른 글
[BAEKJOON] 15633 Fan Death (0) | 2025.07.10 |
---|---|
[BAEKJOON] 5300 Fill the Rowboats! (0) | 2025.07.02 |
[BAEKJOON] 25932 Find the Twins (0) | 2025.06.26 |
[BAEKJOON] 2863 이게 분수? (0) | 2025.06.19 |
[BAEKJOON] 13297 Quick Estimates (2) | 2025.06.18 |