-
[백준/BOJ] 10162번 : 전자레인지 (JAVA / 자바)백준 2022. 1. 25. 16:36
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/10162
- 문제 -
난이도 브론즈 4 문제이다.
서브태스크 문제다. 그냥 간단히 생각하면 기존 백준 문제는 맞고 틀리는 단순한 문제면 서브태스크는 점수형 문제라 생각하면 된다. 간단히 생각하면 그렇단 거지 실제로 자세하게 알고 들어가면 다른다. 그건 여기서 설명하기엔 길어지니 직접 구글링 해보길.
서브태스크 조건을 보면 3가지의 범위가 있고 각 점수가 있다. 하지만 보면 3번째 조건이 1, 2번째 조건을 포함하고 있다. 그렇다면 3번째 조건만 만족시켜주면 100점을 얻을 수 있을거란 소리다. 이번 문제는 그냥 범위 지정이나 다른 방법 없이 기존대로 풀이를 하면 100점을 맞는다. 하지만 다른 문제들을 풀다보면 범위 떄문에 int로 풀었더니 30점이고 long으로 풀었더니 100점 맞는 경우도 있다. 항상 문제를 잘 보고 풀어보자.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
우선 주어지는 입력값이 초단위이기 때문에 주어진 5분 1분 10초를 다 초단위로 바꾸겠다.
300초 60초 10초가 된다.
초 나온거 보면 다 10의 배수이다. 그렇다면 10의 배수가 아닌 수가 T로 주어진다면 그건 이 버튼들로 지정 할 수 없는 숫자가 된다. 그렇다면 if문을 사용해 T가 10의 배수인지를 판단한다. 그리고 T가 10의 배수가 아니라면 문제에서 말한대로 -1을 출력해준다.
10의 배수가 맞다면 이제 T를 처음에 5분으로 몇번을 설정할 수 있는지 구한다. 그리고 1분으로 몇번을 설정하는지 구하고 10초로 구한다. 식을 아래 코드를 보자.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); //T가 10의 배수가 아니라면 -1을 출력 if(T % 10 != 0) { System.out.println(-1); }else { //A에 5분으로 몇번을 설정해야하는지 값을 저장 int A = T / 300; //5분으로 설정을 했으니 설정하고 남은 값을 T에 저장 T %= 300; //B에 1분으로 몇번을 설정해야하는지 값을 저장 int B = T / 60; //1분으로 설정을 했으니 설정하고 남은 값을 T에 저장 T %= 60; //10초는 10을 나눠주면 끝나는 것이기에 그냥 출력에서 바로 연산 System.out.println(A + " " + B + " " + (B / 10)); } } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠다.
'백준' 카테고리의 다른 글
[백준/BOJ] 10707번 : 수도요금 (JAVA / 자바) (0) 2022.01.25 [백준/BOJ] 10179번 : 쿠폰 (JAVA / 자바) (0) 2022.01.25 [백준/BOJ] 10156번 : 과자 (JAVA / 자바) (0) 2022.01.25 [백준/BOJ] 10101번 : 삼각형 외우기 (JAVA / 자바) (0) 2022.01.25 [백준/BOJ] 10039번 : 평균 점수 (JAVA / 자바) (0) 2022.01.24