728x90
반응형
처음 생각한 접근법.
1. 시간(h)을 전부 분(m)으로 바꾸어 하나로 합친다.
2. 거기서 45분을 뺀다.
3. 60으로 나눈뒤 몫을 시간으로, 나머지를 분으로 출력한다.
그런데?
계속 오답이 뜬다...
내가 생각한 특별한 조건은 시간이 0시 였을때 이므로,
조건식으로 H==0을 줬으나 계속 오답이라고 나왔다.
결국 이렇게 바꿨다.
백준이 정답으로 인정한 코드는 다음과 같다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int H = sc.nextInt();
int M = sc.nextInt();
sc.close();
int time = H*60+M-45;
if(time<0) {
System.out.println(23+" "+(time+60));
}else {
System.out.println(time/60+" "+time%60);
}
}
}
(+21.03.08 내용추가)
백준 질문게시판에 내가 처음 짠 코드를 올렸고, 다른 사용자분이 반례를 들어주셨다.
반례는 다음과 같다.
0 45 를 입력할 경우,
0 0이 출력되어야하는데 23 0 으로 출력되는것이다.
24시는 0 으로 출력되어야하는데, 그 부분을 간과한것이다.
728x90
반응형
'알고리즘 > 코딩테스트' 카테고리의 다른 글
[백준/알고리즘] 15552번 빠른 A+B문제 ,(자바풀이) (0) | 2021.03.14 |
---|---|
[백준/알고리즘] 8393 합 문제, (자바/파이썬 풀이) (0) | 2021.03.14 |
[백준사용법] 처음 풀어보는 백준, 컴파일에러? (자바) (0) | 2021.03.14 |
[백준/알고리즘] 10950번 A+B-3문제, (자바/파이썬 풀이) (0) | 2021.03.14 |
[백준이용법] Scanner와 BufferedReader의 차이 (0) | 2021.03.07 |
댓글