10
05

 

https://www.acmicpc.net/problem/13223

 

13223๋ฒˆ: ์†Œ๊ธˆ ํญํƒ„

์ฒซ์งธ ์ค„์—๋Š” ํ˜„์žฌ ์‹œ๊ฐ์ด hh:mm:ss๋กœ ์ฃผ์–ด์ง„๋‹ค. ์‹œ๊ฐ„์˜ ๊ฒฝ์šฐ 0≤h≤23 ์ด๋ฉฐ, ๋ถ„๊ณผ ์ดˆ๋Š” ๊ฐ๊ฐ 0≤m≤59, 0≤s≤59 ์ด๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” ์†Œ๊ธˆ ํˆฌํ•˜์˜ ์‹œ๊ฐ„์ด hh:mm:ss๋กœ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

import java.io.*;

class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(":");
        String[] target = br.readLine().split(":");
        int res = 0;
        if((Integer.parseInt(input[0])*60*60+Integer.parseInt(input[1])*60+Integer.parseInt(input[2])
                > Integer.parseInt(target[0])*60*60+Integer.parseInt(target[1])*60+Integer.parseInt(target[2]))){
            res =  24*60*60+ Integer.parseInt(target[0])*60*60+Integer.parseInt(target[1])*
            60+Integer.parseInt(target[2]) - (Integer.parseInt(input[0])*60*60+Integer.parseInt(input[1])*60+Integer.parseInt(input[2]));
        }else{
            res = Integer.parseInt(target[0])*60*60+Integer.parseInt(target[1])*
                    60+Integer.parseInt(target[2])-(Integer.parseInt(input[0])*60*60+Integer.parseInt(input[1])*60+Integer.parseInt(input[2]));
        }
        String hours = "";
        String mins = "";
        String secs = "";
        int hour = res/3600;
        if(hour < 10){
            hours = "0"+ hour;
        }else{
            hours = ""+ hour;
        }
        int min = (res - hour*3600)/60;
        if(min < 10){
            mins = "0"+ min;
        }else{
            mins = ""+ min;
        }
        int sec = res - hour*3600 - min*60;
        if(sec < 10){
            secs = "0"+ sec;
        }else{
            secs = ""+ sec;
        }
        System.out.println(hours+":"+mins+":"+secs);

    }
}

์˜ค๋‹ต๋…ธํŠธ(ํ‘ธ๋Š” ๋™์•ˆ ์‚ฌ๊ณ ๊ณผ์ • ๋ฐ ๊ฐœ์„ ์ )

์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ":" ์„ delimeter๋กœ ํ•ด์„œ splitํ•˜๊ณ , split์€ String๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋‹ˆ๊นŒ ๊ฐ’์„ ๋ฐ”๊ฟ”์คฌ๋‹ค. 

๋กœ์ง์€ target์‹œ๊ฐ„์ด input์‹œ๊ฐ„๋ณด๋‹ค ์ž‘์„ ๋•Œ 24h๋ฅผ ๋”ํ•ด์„œ target - input ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ, 37%์—์„œ ๊ณ„์† ๋ฉˆ์ท„๋‹ค.

 

HH:MM:SS ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •๋„ ๋งค์šฐ ์ง€์ €๋ถ„ํ•˜๋‹ค... ์–ธ์ œ์ฏค ํ•œ๋ฒˆ์— ๋งž์ถœ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

 

์ €๋ฒˆ ๋ฌธ์ œ๋„ ๊ทธ๋ ‡๊ณ 

  1. ์•„์ด๋””์–ด๋Š” ๋งž์•˜์Œ,
  2. ์—ฃ์ง€ ์ผ€์ด์Šค์— ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ

์ด ๋‘๊ฐœ๊ฐ€ ๋ฌธ์ œ์ธ๋ฐ ์ž˜ ์•ˆ๋ณด์ธ๋‹ค.


์ •๋‹ต์ฝ”๋“œ

import java.io.*;

class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(":");
        String[] target = br.readLine().split(":");
        int res = 0;
        if((Integer.parseInt(input[0])*60*60+Integer.parseInt(input[1])*60+Integer.parseInt(input[2])
                >= Integer.parseInt(target[0])*60*60+Integer.parseInt(target[1])*60+Integer.parseInt(target[2]))){
            res =  24*60*60+ Integer.parseInt(target[0])*60*60+Integer.parseInt(target[1])*
            60+Integer.parseInt(target[2]) - (Integer.parseInt(input[0])*60*60+Integer.parseInt(input[1])*60+Integer.parseInt(input[2]));
        }else{
            res = Integer.parseInt(target[0])*60*60+Integer.parseInt(target[1])*
                    60+Integer.parseInt(target[2])-(Integer.parseInt(input[0])*60*60+Integer.parseInt(input[1])*60+Integer.parseInt(input[2]));
        }
        String hours = "";
        String mins = "";
        String secs = "";
        int hour = res/3600;
        if(hour < 10){
            hours = "0"+ hour;
        }else{
            hours = ""+ hour;
        }
        int min = (res%3600)/60;
        if(min < 10){
            mins = "0"+ min;
        }else{
            mins = ""+ min;
        }
        int sec = res%60;
        if(sec < 10){
            secs = "0"+ sec;
        }else{
            secs = ""+ sec;
        }
        System.out.println(hours+":"+mins+":"+secs);

    }
}

substring์„ ์‚ฌ์šฉํ•˜๋ฉด split์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.(๋‹ค๋ฅธ ์•„์ด๋””์–ด)

Integer.parseInt(target.substring(0,2));

์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค. substring์€ [ ) ๋ผ์„œ ๋ฒ”์œ„์— ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค. ๊ทผ๋ฐ ์ด ๋ฐฉ๋ฒ•์€ ์ž…๋ ฅ๊ฐ’์„ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ด๊ณ  split์ด ๋ณดํ†ต์˜ ๊ฒฝ์šฐ์— ๋” ์ข‹๋‹ค.

 

์•„์ฃผ ๋ฉ์ฒญํ•œ ์ด์œ  ๋•Œ๋ฌธ์— ํ‹€๋ ธ๋‹ค. 00:00:00 -> 00:00:00 ์ธ ๊ฒฝ์šฐ๋ฅผ ์ฒดํฌํ•ด์ฃผ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค... ์—ฃ์ง€ ์ผ€์ด์Šค๋ฅผ ๊ผญ ์‚ดํ”ผ๋Š” ์Šต๊ด€์„ ๋“ค์—ฌ๋ณด์ž.

 

์ถœ๋ ฅ ์กฐ๊ฑด ๋•Œ๋ฌธ์— 0์„ ๋” ๋„ฃ์–ด์ฃผ๋Š” ๋กœ์ง ๋•Œ๋ฌธ์— ์—„์ฒญ ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•œ๋ฐ, ๋ฌธ์ž์—ดํฌ๋งท์œผ๋กœ ํ•ด๊ฒฐ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฑธ ๋ฐฐ์› ๋‹ค.

// int๋กœ h,m,s ๋ณ€ํ™˜ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ๋‹ค.
System.out.printf("%02d:%02d:%02d", hours, mins, secs);

%02๋Š” ๋‘ ์ž๋ฆฌ๊นŒ์ง€ ๊ฐ’์„ ๋ฐ›๊ณ , ํ•œ ์ž๋ฆฌ ๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด ์•ž์— 0์œผ๋กœ ๋ฏธ๋ฆฌ ์ฑ„์›Œ๋„ฃ๋Š”๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

"๋Œ“๊ธ€, ๊ณต๊ฐ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์”ฉ ๋ˆ„๋ฅด๊ณ  ๊ฐ€์ฃผ์‹œ๋ฉด ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค"

 

๋ฐ˜์‘ํ˜•
COMMENT