백준 2525번

HC·2022년 8월 2일
0

내가 짠 코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	int a = sc.nextInt();
	int b = sc.nextInt();
	int c = sc.nextInt();
	
	if((c+b) >= 120) {
		a = a + 2;
		b = (c+b)-120;
	}
	else if((c+b) >= 60) {
		a = a + 1;
		b = (c-60) + b;
	}else if((b+c) < 60){
		a = a;
		b = b+c;
	}
	if(a >= 24) {
		a = a-24;
	}
	System.out.print(a + " " + b);
	}
}

이렇게 풀었는데 맞왜안..

그러다가 찾아본 다른 코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	int a = sc.nextInt();
	int b = sc.nextInt();
	int c = sc.nextInt();
	//시간을 모두 분으로 나눠서 계산
	int min = (a * 60) + b + c;
	a = (min / 60) % 24; //전체 분/60 = 시간 , %24 = 24미만은 그대로, 이상은 0부터 시작.
	b = min % 60; // 전체 분을 60으로 나눈 나머지. 시간을 제외한 분.
	
	System.out.print(a + " " + b);
	}
}

코드 길이도 더 짧고, 시간을 분으로 바꿔서 계산하니
if문을 남발할 필요도 없고 간단하다.

profile
오류보고

0개의 댓글