반응형
백준 10162번 문제 전자레인지
greedy 알고리즘 문제
https://www.acmicpc.net/problem/10162
문제 풀이
어렵지 않은 문제.
중고등학생 때 풀던 동전 최소 개수 문제랑 똑같다
출력조건에 따라
1의 자리가 0이 아니면 주어진 숫자로는 만들 수 없는 수이니 -1을 출력하고
1의 자리가 0이면 T를 큰 값부터 나누어 몫은 카운트에 저장하고 나머지는 T에 다시 저장을 반복한다.
해답 코드 Python
# 백준 10162 전자레인지 greedy
from sys import stdin
#입력
T = int(stdin.readline())
#개수 카운트 저장할 배열, 사용할 데이터 배열
count = [0]*3
abc = [300,60,10]
#1의 자리가 0이 아니면 -1을 출력
if(T%10 != 0) :
print(-1)
#1의 자리가 0이면 T를 큰 값부터 나누어 몫은 카운트에 저장하고 나머지는 T에 다시 저장
else :
for i in range(3) :
count[i] = T//abc[i]
T -= count[i]*abc[i]
#출력
print(count[0], count[1], count[2])
Comment
파이썬
/ : 실수값 표현하는 나눗셈
// : 몫 (정수)
% : 나머지 (정수)
반응형
'DSA > Algorithm' 카테고리의 다른 글
[백준 2959] 거북이 Python sort 정렬 (0) | 2021.09.29 |
---|---|
[백준 2720] 세탁소 사장 동혁 Python greedy 그리디 알고리즘 (0) | 2021.09.29 |
[백준 2231] 분해합 Python 완전탐색(브루트포스) (0) | 2021.09.26 |
[백준 2798] 블랙잭 Python 완전탐색(브루트포스) (0) | 2021.09.26 |
[백준 15829] Hashing 해싱 Python 해시 (0) | 2021.09.26 |