http://acmicpc.net/problem/2577
{코드}
data = input()+input()+input()
count = [0]*10
for i in data:
count[int(i)] += 1
[print(i) for i in count]
{설명}
이 문제는 입력된 세 숫자들에 0~9까지의 숫자가 각각 몇개씩 있는지 찾아내는 문제로 모든 입력을 문자열 한개로 받고 그 문자열을 반복하며 각 숫자의 개수를 리스트에 저장하며 풀 수 있다.
{코드}
from collections import Counter
data = input()+input()+input()
count = Counter(data)
for i in range(10):
print(0 if str(i) not in count else count[str(i)])
{설명}
또 다른 방법은 파이썬의 기본 모듈 중 하나인 collections에서 Counter라는 클래스를 사용하는 것입니다.
Counter는 iterable(리스트, map, 튜플, 딕셔너리 등의 반복문에 사용할 수 있는 데이터 타입)을 넣으면 각 원소가 몇개씩 있는지 알려준다.
이를 통해 각 입력을 문자열 한개로 입력받고 그 문자열을 Counter에 인자로 넘겨주고 반복문을 통해 0 또는 갯수를 출력하면 된다.
'알고리즘 공부 > BOJ백준 풀이' 카테고리의 다른 글
[백준 1546번-파이썬/Python] 평균 (0) | 2020.10.05 |
---|---|
[백준 3052번-파이썬/Python] 나머지 (0) | 2020.10.01 |
[백준 2562번-파이썬/Python] 최댓값 (0) | 2020.10.01 |
[백준 10818번-파이썬/Python] 최소, 최대 (0) | 2020.09.29 |
[백준 1110번-파이썬/Python] 더하기 싸이클 (0) | 2020.09.29 |