데이터 엔지니어링 정복/Algorithm
[그리디, 수학, 구현] 백준 - 전자레인지
noohhee
2021. 7. 18. 12:21
728x90
반응형
https://www.acmicpc.net/problem/10162
10162번: 전자레인지
3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은
www.acmicpc.net
-문제이해
입력받은 t값에 대해서 300 나누기, 60 나누기, 10 나누기 횟수를 출력하는 문제이다.
예를 들어 t가 370일 경우
370 / 300 = 1
t = 370 - 300*1
의 계산을 해주고 다음 60나누기를 진행한다.
70 / 60 = 1
t = 70 - 60*1
10 / 10 = 1
t = 10 - 10
-자바
package greedy;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class BJ10162 {
private static BufferedWriter bw =
new BufferedWriter( new OutputStreamWriter(System.out));
private static int t;
private static final int[] arr = {300, 60, 10};
private static int[] ans = new int[3];
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
t = Integer.parseInt( br.readLine() );
for( int i=0; i<3; i++ ) {
ans[i] = t/arr[i];
t -= arr[i]*ans[i];
}
if( t!=0 ) {
bw.write( -1 + "\n" );
} else {
for( int i=0; i<3; i++ ) bw.write( ans[i] + " " );
}
bw.flush();
bw.close();
br.close();
}
}
-파이썬
t = int(input())
arr = [300, 60, 10]
ans = [0] * 3
for i in range( 3 ):
ans[i] = t//arr[i]
t -= arr[i]*ans[i]
if t!=0:
print( -1 )
else:
print( *ans )
728x90
반응형