티스토리 뷰
[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까지 숫자를 각각 문자열로 변환하였다.
'파이썬 스킬업 > 백준 알고리즘 연습' 카테고리의 다른 글
백준 3052번 [파이썬] 나머지 set( ) 함수 활용 (1) | 2020.07.05 |
---|---|
백준 2562번 [파이썬 알고리즘] 최댓값 (0) | 2020.07.05 |
백준 10996번 [파이썬 알고리즘] 별 찍기 - 21 (0) | 2020.07.05 |