코딩 테스트

[코딩테스트] 백준 2525번: 오븐 시계

dev.jelee 2025. 5. 11. 00:17

# 문제

 

# 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String[] strs = br.readLine().split(" ");
    int A = Integer.parseInt(strs[0]); // hour
    int B = Integer.parseInt(strs[1]); // min
    int C = Integer.parseInt(br.readLine()); // cook min

    int totalMin = (A * 60) + B + C;

    int endA = (totalMin / 60) % 24;
    int endB = totalMin % 60;


    System.out.println(endA + " " + endB);
  }
}

 

# 입/출력 결과

 

# 과정

  1. BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
  2. 첫번째 입력값은 공백 기준으로 나누어서 String[] strs에 저장.
  3. 두번째 입력값은 int C에 숫자로 형변환해서저장.
  4. 전체 종료 시간을 분으로 환산한다.
  5. int totalMin을 만들어 A는 시라서 A * 60 해주고 나머지 B, C를 더해준다.
  6. endA는 totalMin / 60을 하고 난 몫에서 % 24를 해서 나머지 값을 저장한다.
  7. endB는 totalMin % 60을 하고 나머지를 저장한다.
  8. endA와 endB 사이에 공백을 두고 한 줄로 출력한다.

 

# 느낀 점

  • 처음에 int endB가 60보다 크면 endA와 endB를 각각 계산하고 endA가 24면 0, endB가 60이면 0 이렇게 작성했다. 소스코드도 많이 복잡해져서 고민하다보니 A를 분으로 환산하여 A, B, C 모두 다 곱한 값을 totalMin에 저장하고 그 다음 totalMin에서 시와 분으로 만들면 되었다.
  • 이런 문제를 풀고 난 뒤 이렇게도 생각할 수도 있겠다. 라는 사고력이 늘어나는 거 같다.
  • 그래서 내 생각에는 코딩테스트 문제를 많이 풀고, 다른 소스코드를 많이 접해보는 것이 좋은 거 같다.