JAVA/백준

[백준 문제] java - 2884

못지(Motji) 2021. 5. 26. 23:58

2884번 문제풀이

1번 제출 - why 땡 ?

더보기
시간만 입력될 경우의 조건을 안넣어 줬다.ex) 10시 -> 10 0이라고 입력하기 않기 때문에 한문자만 들어갈 경우도 고고..문제를 잘 못 이해함 ㅎㅎㅎ;ㅎ;ㅎ;ㅎ;ㅎ

불필요한 0은 사용하지 않는다. >>> 불필요한 0은 나오지 않게 하라는줄 ㅎㅋㅎㅋ 그부분 빼고 돌리니까 정답됨!

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String input = sc.nextLine();
		String [] arr = input.split(" ");
		int h = Integer.parseInt(arr[0]);
		int m = Integer.parseInt(arr[1]);
		
		if((m/45)==0) {
			if(h==0) {
				h=23;
				m = (m+60)-45;
				System.out.println(h + " " + m);
			}else {
				h--;
				m = (m+60)-45;
				System.out.println(h + " " + m);
			}
		}else if((m/45)==1){
			if((m-45)==0) {
				System.out.println(h);
			}else {
				m -= 45;
				System.out.println(h + " " + m);
			}
		}

	}
}

2번 제출 - 정답

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String input = sc.nextLine();
		String [] arr = input.split(" ");
		int h = Integer.parseInt(arr[0]);
		int m = Integer.parseInt(arr[1]);
		
		if((m/45)==0) {
			if(h==0) {
				h=23;
				m = (m+60)-45;
				System.out.println(h + " " + m);
			}else {
				h--;
				m = (m+60)-45;
				System.out.println(h + " " + m);
			}
		}else if((m/45)==1){
			m -= 45;
			System.out.println(h + " " + m);
		}
	}
}

3번제출 - 정답 - 중복되는 코드 줄이고 더 간결하게

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String input = sc.nextLine();
		String [] arr = input.split(" ");
		int h = Integer.parseInt(arr[0]);
		int m = Integer.parseInt(arr[1]);
		
		if(m<45) {
			h--;
			m = (m+60)-45;
			if(h<0) {
				h=23;
			}
				System.out.println(h + " " + m);
		}else {
				m -= 45;
				System.out.println(h + " " + m);
		}
	}
}