Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- github
- hackerrank
- leetcode
- 맥북
- 더현대서울 맛집
- PYTHON
- 캐치카페
- 프로그래머스
- 우분투
- 자연어처리
- Real or Not? NLP with Disaster Tweets
- 데이콘
- Kaggle
- ubuntu
- 편스토랑 우승상품
- AI 경진대회
- 금융문자분석경진대회
- 코로나19
- Docker
- Git
- dacon
- gs25
- 편스토랑
- 백준
- Baekjoon
- 프로그래머스 파이썬
- ChatGPT
- SW Expert Academy
- 파이썬
- programmers
Archives
- Today
- Total
솜씨좋은장씨
[BaekJoon] 2577번 : 숫자의 개수 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 숫자의 개수입니다.
Solution 1
num1 = int(input())
num2 = int(input())
num3 = int(input())
x_num = list(str(num1 * num2 * num3))
answer = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for num in x_num:
answer[int(num)] += 1
for ans in answer:
print(ans)
Solution 풀이
먼저 숫자 세개를 입력 받습니다.
그 다음 세개의 숫자를 곱한 값을 문자열로 바꾼다음 list로 바꾸어줍니다.
각 숫자가 몇번씩 나왔는지 카운팅할 0이 10개 들어있는 answer list를 만들어줍니다.
아까 곱한 값을 문자열로 바꾼다음 만든 list에서 하나씩 꺼내와서 int로 바꾼 값을
answer list의 값에 접근하는 인덱스로 활용하여 해당 위치의 숫자의 값을 1씩 증가 시킵니다.
마지막으로 answer list의 값을 하나씩 꺼내와서 출력하면 끝!
Solution2
from collections import Counter
num1 = int(input())
num2 = int(input())
num3 = int(input())
x_num = list(str(num1 * num2 * num3))
cnt = Counter(x_num)
for i in range(10):
if str(i) in cnt.keys():
print(cnt[str(i)])
else:
print(0)
이번엔 collections의 Counter를 활용해보기로 했습니다.
먼저 아까와 같이 숫자를 세개 입력받고 이를 곱한뒤에 문자열로 바꾸고 이를 다시 list로 변환합니다.
그 다음 collections의 Counter를 활용하여 각 숫자별로 몇개씩 있는지 카운팅합니다.
마지막으로 0부터 9까지 반복문을 돌면서
cnt에 키가 있을 경우엔 cnt[str(i)]를 아닐경우에는 0을 출력합니다.
사실 이게 더 빠를 줄 알았는데!
느렸습니다.
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 10171번 : 고양이 (Python) (0) | 2021.05.24 |
---|---|
[BaekJoon] 1546번 : 평균 (Python) (0) | 2021.05.24 |
[BaekJoon] 2108번 : 통계학 (Python) (2) | 2021.05.22 |
[BaekJoon] 1152번 : 단어의 개수 (Python) (1) | 2021.05.21 |
[CodeUp] 1676번 : 제품 생산량 순위 구하기 (Python) (0) | 2021.05.20 |
Comments