본문 바로가기
BOJ/[BOJ] Python

백준 2577번 풀이

by Lv. 35 라이츄 2022. 8. 18.

문제

https://www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

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

www.acmicpc.net

세 자리 수 세 개를 곱하면 어떤 값이 나올텐데, 그 값에서 0~9까지의 숫자가 몇 개를 썼는지 세면 된다. 입력값은 줄당 하나이고, 출력값은 9줄.

 

풀이

import sys
a = int(sys.stdin.readline())
b = int(sys.stdin.readline())
c = int(sys.stdin.readline())
# Input

Jupyter에서는 sys 뭐시기 리드라인이 안되는데(모듈 불러오는 건 되는데 입력이 안된다), VScode나 파이참은 된다. 근데 파이참이 지금 바빠요… vcf 불러와서 피벗 만드느냐고… 아무튼 그래서 VScode를 소환했다. 그래서 input보다 빠르다. 그거랑 별개로 딱히 설명할 건 없음.

d=str(a*b*c)
# 곱함

이걸 글자로 바꾸는 이유는 후술.

for i in range(10):
    print(d.counts(i)) # 이게 세주는 게 맞는데 오류가...

그럼 For문 돌리면 되나요? 에, 되긴 되죠. 근데 계산한 결과값이 int면 오류나요. 그리고 for에 저렇게만 줘도 에러터진다.

for i in range(10):
    print(d.count(str(i)))
# 세준다

그래서 계산 결과값과 세 주는 숫자가 다 문자형태여야 한다.

import sys
a = int(sys.stdin.readline())
b = int(sys.stdin.readline())
c = int(sys.stdin.readline())
# Input
d=str(a*b*c)
# 곱함 
for i in range(10):
    print(d.count(str(i)))
# 세준다

그래서 이게 최종 코드다.

'BOJ > [BOJ] Python' 카테고리의 다른 글

백준 1546번 풀이  (0) 2022.08.18
백준 3052번 풀이  (0) 2022.08.18
백준 2438, 2439번 문제 풀이  (0) 2022.08.18
백준 8393번 풀이  (0) 2022.08.18
백준 10950번 풀이  (0) 2022.08.18

최근댓글

최근글

skin by © 2024 ttutta