2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
www.acmicpc.net
이전풀이
https://dmaolon00.tistory.com/10
[백준_python] count, 런타임 에러 (ValueError), set( ), dictionary || 2577, 3052
count( ) : 문자열에서 쓰이는 메서드(클래스 안에 있는 함수)입니다. 내부에 찾을 문자를 넣고, 추가적으로 찾을 곳의 시작과 끝을 넣어주기도 한다.(넣지 않는 경우, 전체 탐색) set( ) : 집합 함수,
dmaolon00.tistory.com

a = int(input())
b = int(input())
c = int(input())
result = str(a * b * c)
for i in range(0, 10):
cnt = 0
for j in result:
if(int(j) == i):
cnt += 1
print(cnt)
각 a, b, c를 입력받아준 후 구해준 곱을 string 자료형을 이용하여 for문으로 비교할 수 있도록 하였다.
이전 풀이를 보니 count( ) 라는 함수를 이용해줄 수도 있음을 깨달았다.
count( )라는 함수에서도 O(n)정도의 시간복잡도를 가지고 있는지 시간은 똑같이 걸리는 것 같다.
이중 for문을 이용해주지 않고 또 하나의 리스트를 만들어 비교를 해주는 풀이도 이전 풀이에서 살펴볼 수 있는데,
이중 for문을 이용해주지 않아서 시간이 더 적게 걸리는 것 같다.
반응형