java/백준 알고리즘

[백준알고리즘/조건문] 2525번 : 오븐시계 - JAVA

2023. 3. 16. 11:20
목차
  1.  
  2. 💡문제 접근 방법
  3. 💡정답

 

💡문제 접근 방법

 

A(시)와 B(분)을 하나의 분으로 변환한 뒤, C(분)을 더한 값을 다시 시(Hour)과 분(Minute)로 변환하는 전략을 선택한다. 

먼저 입력 받은 A(Hour)와 B(Minute)을 하나의 변환한다.

 

int min = 60 * A + B; // 주어진 시간을 '분'으로 변환

 

그 다음으로 요리하는 데에 걸리는 시간인 C(Minute)를 더한다.

 

min = min + C; // 요리하는데 걸린 시간을 더한다

 

 주어진 시간과 요리하는 데에 걸리는 시간을 분(Minute)으로 변환하는 작업은 끝이 났다. 다음으로는 시(Hour)와 분(Minute)으로 변환하는 작업을 해야한다. 시(Hour)를 구하기 위해선 분(Minute)을 60으로 나눈다.

 

 예를 들어 Minute이 120이라면 시(Hour)으로 변환하면 2이 되어야한다. 120을 2로 '나누면' 시간을 구할 수 있다. 그렇다면 분(Minute)은 어떻게 구할까? 분(Minute)을 구하기 위해 분을 60으로 나눈 나머지 값을 구한다. 125분을 시간으로 나타내면 2시간 5분이다. 여기서 분(Minute)은 5인데, 이는 125를 60으로 나눈 나머지와 같은 값이 된다.

 

 마지막으로 문제에선 시(Hour)를 0~23으로 제시했다. 이 조건을 지키기 위해 24를 나눈 나머지 연산을 해야한다. 예를들어 A와 B가 23 00 이고 C가 120이라 가정할 때 이를 분으로 바꾸면 A*60 + B = 1380이고 C를 더하면 1500이다. 이를 다시 시(Hour)과 분(Minute)으로 변환하면 25 0 이다. 즉, 25시 0분이 된다. 하지만 문제에서는 0~23사이의 값을 시(Hour)로 나타내라 했으므로 1 0이 나와야 한다. 25를 24로 나누면 나머지로 그 값을 구할 수 있다.

 

		// 분으로 변환했던 시간을 다시 시(hour)과 분(minute)로 변환한다.
		int hour = (min / 60) % 24; // 시(24시 이상이 될 경우 0시부터 시작한다)
		int minute = min % 60;

 

💡정답

import java.util.Scanner;

public class Qno2525 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		int A = in.nextInt(); // 시간
		int B = in.nextInt(); // 분
		
		int C = in.nextInt(); // 요리하는데 걸린 시간
		
		int min = 60 * A + B; // 주어진 시간을 '분'으로 변환
		min = min + C; // 요리하는데 걸린 시간을 더한다
		
		// 분으로 변환했던 시간을 다시 시(hour)과 분(minute)로 변환한다.
		int hour = (min / 60) % 24; // 시(24시 이상이 될 경우 0시부터 시작한다)
		int minute = min % 60;
		
		System.out.println(hour + " " + minute);
	}

}

 


참조

https://st-lab.tistory.com/292

'java > 백준 알고리즘' 카테고리의 다른 글

[백준 알고리즘 / 1차원배열] 5597번 : 과제 안 내신분...? - JAVA  (0) 2023.03.24
[백준알고리즘/배열] 10807번 : 개수 세기 - JAVA  (0) 2023.03.21
[백준 알고리즘/조건문] 2884번. 알람시계  (0) 2023.03.15
[백준 알고리즘/조건문] 2439번 별 찍기 -2  (0) 2023.03.08
[백준 알고리즘/조건문] 25304번 영수증  (0) 2023.03.07
  1.  
  2. 💡문제 접근 방법
  3. 💡정답
'java/백준 알고리즘' 카테고리의 다른 글
  • [백준 알고리즘 / 1차원배열] 5597번 : 과제 안 내신분...? - JAVA
  • [백준알고리즘/배열] 10807번 : 개수 세기 - JAVA
  • [백준 알고리즘/조건문] 2884번. 알람시계
  • [백준 알고리즘/조건문] 2439번 별 찍기 -2
각시탈코더
각시탈코더
각시탈코더
각시탈코더
각시탈코더
전체
오늘
어제
  • 분류 전체보기 (203)
    • java (46)
      • 객체지향 (20)
      • 기본문법 (8)
      • 자바의 정석 연습문제 오답노트 (9)
      • 백준 알고리즘 (9)
    • Spring (17)
      • SpringMVC (8)
      • Spring DI와 AOP (5)
      • REST API와 Ajax (1)
      • Spring 프로젝트 (1)
      • Spring Security (0)
    • DB (47)
      • Oracle (15)
      • SQL오답노트 (25)
      • 튜닝 (0)
      • ERD (1)
      • DB 모델링 (5)
    • Servlet & JSP (3)
    • JDBC (2)
      • 기본 (1)
      • 스프링JDBC (1)
    • MyBatis (2)
    • JavaScript (2)
      • 코딩애플 (0)
      • 문법 (1)
    • React (0)
      • 코딩애플 (0)
    • HTML (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • CSS (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • Linux (0)
    • Git & GitHub (2)
      • Git (1)
    • CS (19)
      • 네트워크 (6)
      • HTTP (7)
      • 컴퓨터구조 (0)
      • 자료구조와 알고리즘 (2)
      • 기타 (4)
    • 개발설정 (2)
    • 기술면접 (0)
      • JAVA (0)
      • Spring (0)
      • DB (0)
      • 네트워크 (0)
      • 공통 (0)
    • 프로젝트 (2)
      • 게시판만들기 (2)
    • 기혁씨의 삽질표류기 (28)
    • 참고자료 (2)
      • 국비수업 (0)
      • 당당 프로젝트 (1)
    • 뉴렉처 (17)
      • 자바 (11)
      • 자바스크립트 (3)
      • 키워드 (0)
      • 숙제 (0)
      • CSS (0)
      • DB (3)
      • 서블릿 (0)
      • 스프링 (0)
      • DOM (0)
    • 내가 만든 학습그림 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 쿼리
  • 자바의정석
  • 오류
  • 뉴렉처
  • 알고리즘
  • 모두의네트워크
  • 스프링
  • 개발자
  • SQL
  • 국비수업
  • 객체지향
  • 웹프로그래밍
  • 배열
  • 백준
  • 프로그래머스
  • Oracle
  • 네트워크
  • 자바의정석기초편
  • It
  • 오라클
  • 코딩
  • 서브쿼리
  • 백엔드
  • 공부
  • db
  • Java
  • spring
  • 에러
  • 연습문제
  • 자바

최근 댓글

최근 글

hELLO · Designed By 정상우.
각시탈코더
[백준알고리즘/조건문] 2525번 : 오븐시계 - JAVA
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.