본문 바로가기

자료구조+알고리즘/BOJ

[2884][java][백준] 알람 시계

알고리즘 분류

  • 수학
  • 구현
  • 사칙연산

 

 

 

 


 

 

풀이

1. Scanner 로 입력 받기

 

import java.util.Scanner;

/*
45분전의 시간을 구하면 된다
*/
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int h = sc.nextInt();
        int m = sc.nextInt();

        if( m < 45 ) {
            h--;
            m = 60 - (45 - m);
            // h시간이 0시라면 음수값이 됨 -> 23시로
            if(h < 0 ){
                h = 23;
            }
            System.out.println(h + " " + m);
        }else {
            m -= 45;
            System.out.println(h + " " + m);
        }

    }
}

 

 

2. BufferedReader 로 입력 받기 

  • readLine() : 한 행을 전부 읽기 때문에 공백 단위로 분리
  • StringTokenizer 클래스를 이용하여 분리 : 문자열 반환하니 int 형으로 형 변환 해줘야 함 

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

/*
BufferedReader 로 입력받기
readLine() 을 통해 입력 받기
       : 한 행을 전부 읽기 때문에 공백단위로 분리
=> StringTokenizer 클래스를 이용하여 분리
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str = br.readLine();
        StringTokenizer st = new StringTokenizer(str, " "); // st.nextTokon() 은 문자열을 반환하니 Interger.parseInt()로 int형으로 변환시켜줌

        int h = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());

        if(m < 45){
            h --;
            m = 60 - (45 - m);
            if(h < 0){
                h = 23;
            }
            System.out.println(h + " " + m);
        }else{
            m -= 45;
            System.out.println(h+ " " + m );
        }
    }
}

 

  • split(" ") 공백 단위로 문자열을 나눔 -> String 배열에 각각 저장
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

/*
BufferedReader 로 입력받기
readLine() 을 통해 입력 받기
       : 한 행을 전부 읽기 때문에 공백단위로 분리
=> split(" ") 공백 단위로 문자열 나눔
       : String 배열에 각각 저장
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] str = br.readLine().split(" ");

        int h = Integer.parseInt(str[0]);
        int m = Integer.parseInt(str[1]);

        if(m < 45){
            h --;
            m = 60 - (45 - m);
            if(h < 0){
                h = 23;
            }
            System.out.println(h + " " + m);
        }else{
            m -= 45;
            System.out.println(h+ " " + m );
        }
    }
}

 

 

 

728x90
반응형