본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:2,IF문,JAVA)2884번,알람 시계

by 열정적인 이찬형 2021. 12. 3.

문제 링크

2884번: 알람 시계
 
www.acmicpc.net

주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

  • BufferedReader를 사용하여 입력값을 저장합니다.
  • StringTokeizer을 통해 띄어쓰기를 기점으로 구분한 값들을 int형으로 형변환하여 저장하였습니다.
  • 함수 hourCal, minCal을 구성하여 계산을 함수를 통해 하도록 하였습니다.
  • 함수에서 if문을 사용하여 조건을 만들었습니다.
  • 분에서 45분이 감소하였을 때에 음수 : hour -1
  • hour-1을 했을 때 음수 : hour=23;
  • 분에서 45분 감소하였을 때 음수가 아니면 그대로 출력하도록
  • 기본적인 JAVA에 출력문 System.out.println()을 사용하여 조건에 맞는 결과가 출력되게 하였습니다.

결과 코드

import java.util.*;
import java.io.*;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //입력 값을 받는 BufferedReader
        StringTokenizer st;
        String text;
        while((text=br.readLine())!=null){
            st = new StringTokenizer(text," ");
            int hour = Integer.parseInt(st.nextToken());	//입력 값 형변환
            int min = Integer.parseInt(st.nextToken());
            int[] result = hourCal(hour,min);			//배열로 함수값 받기
            System.out.println(result[0] + " " + result[1]);	//결과 출력
        }
    }
    public static int[] hourCal(int h, int m){   		//시간 계산 함수
        m = minCal(m);
        if(m<0){						//조건 형성 및 계산
                h-=1;
                m = 60+m;
                if(h<0){
                    h=23;
                }
            }
        int[] value = {h,m};
        return value;
    }
    public static int minCal(int m){				//분 계산 함수
        m-=45;
        return m;
    }
        
}

댓글