티스토리 뷰

 

[Python] 백준 알고리즘 온라인 저지 2577번 : 숫자의 개수

 

Python3 코드

 

1) for문으로 숫자를 입력받는 코드

total = 1
for _ in range(3):
    i = int(input())
    total *= i  # 3개의 정수를 곱함
total_str = str(total)  # 숫자를 str타입으로 변환

for num in range(10):  # 0부터 9까지
    num_count = total_str.count(str(num))
    print(num_count)

 

2) 입력받는 세 수를 각각 변수에 지정하는 코드

a = int(input())
b = int(input())
c = int(input())
total_str = str(a*b*c)  # 숫자를 곱해서 str타입으로 변환

for num in range(10):  # 0부터 9까지
    num_count = total_str.count(str(num))
    print(num_count)

 

 

Python3 코드 풀이

 

1. 코드 작성에 대한 전체적인 풀이

이번 문제는 세 개의 수를 입력받으면 세 수를 곱하고서 이 숫자가 0부터 9까지 각각 몇 번씩 쓰였는지 출력하는 문제이다. 

 

입력받는 세 수는 for문을 이용해서 곱하고 각 자릿수를 분리하기 위해 문자열로 변환하였다. 이후에 count 함수로 0부터 9까지 숫자가 쓰인 숫자를 출력하는 코드를 작성해서 문제를 풀었다.

 

2. 코드 상단, 세 수를 입력받아 곱하고 문자열로 변환한다.

total = 1
for _ in range(3):
    i = int(input())
    total *= i  # 3개의 정수를 곱함
total_str = str(total)  # 숫자를 str타입으로 변환

for문을 반복하기 전 total 변수에 1을 선언하였다. 이후에 세 수를 입력받기 때문에 for문은 3번 반복하고 입력받는 세수를 total 변수에 곱하였다. total *= i 는 total = total*i와 동일한 의미이다.

 

이후에 total 변수는 str 함수를 이용해서 문자열로 변환하였다. 문자열로 변환한 이유는 숫자 타입은 각 자리의 숫자를 따로 분리할 수 없기 때문이다. 문자열로 변환한 값은 total_str 변수에 저장하였다.

 

세 수를 for문으로 반복하며 입력 받지 않고 각각의 변수에 지정하는 코드는 아래와 같다. 

a = int(input())
b = int(input())
c = int(input())
total_str = str(a*b*c)  # 숫자를 곱해서 str타입으로 변환

 

3.코드 하단, count 함수를 이용해서 0부터 9까지 몇 번씩 쓰였는지 찾는다.

for num in range(10):  # 0부터 9까지
    num_count = total_str.count(str(num))
    print(num_count)

for문을 이용해서 0부터 9까지의 숫자 범위를 생성하고 각 숫자가 total_str 문자열 안에서 몇 번 쓰였는지 출력한다. 이때 몇 번 쓰였는지 알기 위해서 count 함수를 사용하였고 count 함수의 괄호( ) 안에는 찾는 문자열을 입력해야 하기 때문에 str함수를 이용해서 0부터 9까지 숫자를 각각 문자열로 변환하였다. 

 

반응형
댓글
반응형