티스토리 뷰

1. 문제

2. 정답

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 m = 60*a+b; // a의 시간을 분으로 변경
  m+=c; // m=m+c

  int hour=(m/60)%24; // %를 통해 24이상일 경우 0으로 돌아가도록 설정
  int minute = m%60; // %를 통해 60분 이상이면 0으로 돌아가도록 설정
  
  // 60분으로 넘을 경우 hour에 1플러스, 분은 60마이너스
  if(minute>=60){
  hour+=1;
  minute-=60;
}

 System.out.println(hour+" "+minute);
  }
}

3. 분석

가장 먼저, 시를 분으로 변환하여 쉽게 계산할 수 있도록 만들어야한다.
시를 분으로 변환하는 방법은 시에 60을 곱하면 된다.
변환 후에는 오븐시간을 더해 총 시간을 구해야하므로 m+=c로 총 시간을 구하도록 한다.

총 시간을 구한 뒤, 다시 시와 분으로 변경하여야 하는데 분에 60을 나누고 24시간이 넘으면
0이 되도록 60으로 나눈 수에 %24를 지정해준다.
나머지를 구하는 식을 통해 24를 넘으면 0으로 돌아가게 설정되어 있다.
그 다음으로 분도 이와 같이 %60으로 지정하여 60으로 나눈 나머지를 분으로 지정하도록 설정한다.
분에도 60을 넘을 경우 시에 +1, 분에-60을 하도록 설정해준 후 마지막으로 시와 분을 출력해준다.

'CodingTest > JAVA' 카테고리의 다른 글

백준(BAEKJOON) | 10950번 | A+B-3  (0) 2022.12.10
백준(BAEKJOON) | 1330번 | 두 수 비교하기  (0) 2022.12.08
백준(BAEKJOON) | 2588번 | 곱셈  (0) 2022.12.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함