코딩공부/알고리즘

[파이썬 풀이] 백준 2577.숫자의 개수

잉옐잉 2021. 11. 11. 23:50

문제   

세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.

예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.

 

입력   

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

ex)

150

266

427

 

출력   

첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.

ex)

3

1

0

2

0

0

0

2

0

0

 

코드   

ABC=[]
for i in range (3):
    ABC.append(int(input()))
mulABC=list(map(int, str(ABC[0]*ABC[1]*ABC[2])))
for i in range(10):
    print(mulABC.count(i))

 

관련 개념 정리   

for문

특정 코드들을 원하는 횟수 만큼 반복 시킬 때 사용하는것이 for문입니다.

for문의 기본 구조는 아래와 같습니다.

for i in 리스트(or 문자열, 튜플):
	실행할 코드

리스트,문자열,튜플의 첫 글자나 요소부터 마지막 글자나 요소까지 차례대로 변수에 대입됩니다.

 

for문의 범위와 변수값을 숫자로 정하고 싶을때는 아래와 같이 range함수를 사용합니다.

for i in range(시작숫자,종료숫자,step):
	실행할 코드

step은 얼만큼씩 변수를 증가 시킬지 정하는 것 입니다.

시작숫자와 step은 생략되어도 됩니다.

 

 

append

append함수는 리스트의 마지막에 사용자가 원하는 요소를 추가하는 함수입니다.

리스트.append(추가 할 요소)

위와 같은 형태로 사용 가능합니다.

 

 

input

파이썬에서는 값을 사용자로부터 입력받을때 input함수를 사용합니다.

입력받은 값을 넣을 변수 이름 = input("띄울 메세지")

 

단! input함수는 입력받은 모든 내용을 문자열로 인식합니다. 따라서 입력받은 내용을 정수로 변환하려면

d = int(input())

와 같은 형태로 작성하거나,  나중에 변수를 사용할때

print(int(d)+2)

와 같이 int()로 감싸서 작성할 수 있습니다.

 

 

map

map함수는 입력받은 자료형의 각 요소를 함수가 적용된 값으로 변형 시켜주는 함수입니다.

map(함수, 반복 가능한 자료형)

위와 같은 형태로 사용 가능합니다.

예시)

def dddd(x):
    return x+3

print(list(map(dddd,[2,5,1,8])))

# [5, 8, 4, 11]

 

 

list

list함수는 반복 가능한 자료형을 받아 리스트로 만들어 주는 함수입니다.

list(반복 가능한 자료형)

위와 같은 형태로 사용 가능합니다.

print(list("배고파"))
#['배', '고', '파']

print(list((1,6,3)))
#[1, 6, 3]

print(list([3,5,2]))
#[3, 5, 2]

문자열을 입력 받은 경우에는 한글자씩 쪼개서 리스트를 만듭니다.

숫자로 된 리스트를 만들기 위해서는 ,(쉼표) 로 구분해서 ()괄호 안에 입력하면 됩니다.

list에 list를 입력한 경우에는 아무런 변화 없이 입력한 list를 그대로 retrun합니다.

 

 

count

count는 찾고싶은 내용의 갯수를 구할 때 사용합니다.

반복 가능한 자료형.count(찾을 내용)

위와 같은 형태로 사용됩니다.