🧩 Algorithm/[BOJ] Bronze

BOJ 2884번 : μ•ŒλžŒ μ‹œκ³„ (Cμ–Έμ–΄/Bronze 3)

devCloud 2022. 6. 24. 19:12
728x90

이미지 클릭 μ‹œ ν•΄λ‹Ή 문제둜 이동

 

문제

"45λΆ„ 일찍 μ•ŒλžŒ μ„€μ •ν•˜κΈ°"이닀. 이 방법은 λ‹¨μˆœν•˜λ‹€. μ›λž˜ μ„€μ •λ˜μ–΄ μžˆλŠ” μ•ŒλžŒμ„ 45λΆ„ μ•žμ„œλŠ” μ‹œκ°„μœΌλ‘œ λ°”κΎΈλŠ” 것이닀. ν˜„μž¬ 상근이가 μ„€μ •ν•œ μ•ŒλžŒ μ‹œκ°μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, 창영이의 방법을 μ‚¬μš©ν•œλ‹€λ©΄, 이λ₯Ό μ–Έμ œλ‘œ 고쳐야 ν•˜λŠ”μ§€ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

μž…λ ₯

첫째 쀄에 두 μ •μˆ˜ H와 M이 μ£Όμ–΄μ§„λ‹€. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 ν˜„μž¬ 상근이가 μ„€μ •ν•œ 놓은 μ•ŒλžŒ μ‹œκ°„ Hμ‹œ M뢄을 μ˜λ―Έν•œλ‹€. μž…λ ₯ μ‹œκ°„μ€ 24μ‹œκ°„ ν‘œν˜„μ„ μ‚¬μš©ν•œλ‹€. 24μ‹œκ°„ ν‘œν˜„μ—μ„œ ν•˜λ£¨μ˜ μ‹œμž‘μ€ 0:0(μžμ •)이고, 끝은 23:59(λ‹€μŒλ‚  μžμ • 1λΆ„ μ „)이닀. μ‹œκ°„μ„ λ‚˜νƒ€λ‚Ό λ•Œ, λΆˆν•„μš”ν•œ 0은 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

좜λ ₯

첫째 쀄에 상근이가 창영이의 방법을 μ‚¬μš©ν•  λ•Œ, μ„€μ •ν•΄μ•Ό ν•˜λŠ” μ•ŒλžŒ μ‹œκ°„μ„ 좜λ ₯ν•œλ‹€. (μž…λ ₯κ³Ό 같은 ν˜•νƒœλ‘œ 좜λ ₯ν•˜λ©΄ λœλ‹€.)

 

 

예제 μž…λ ₯

0 30

예제 좜λ ₯

23 45

문제 풀이

1. 45λΆ„ 미만일 κ²½μš°μ™€, 이상일 경우둜 λ‚˜λˆˆλ‹€.

2. 45λΆ„ 미만일 κ²½μš°λŠ” μ‹œ(H)κ°€ 1μ‹œκ°„ μ΄μ „μœΌλ‘œ λŒμ•„κ°€μ•Ό ν•˜κ³ , λΆ„(M)은 45λΆ„ μ΄μ „μœΌλ‘œ λŒμ•„κ°€μ•Ό ν•œλ‹€. μ΄λ•Œ, μž…λ ₯된 κ°’(M)μ—μ„œ 45뢄을 κ·ΈλŒ€λ‘œ 빼게 되면 μŒμˆ˜κ°€ 되며, μ˜¬λ°”λ₯Έ 값이 λ‚˜μ˜€μ§€ μ•ŠλŠ”λ‹€. λ”°λΌμ„œ 60λΆ„μ—μ„œ 45뢄을 λΊ€ 값인 15뢄에 μž…λ ₯ κ°’(M)을 λ”ν•˜λ©΄ λœλ‹€.

3. λ§Œμ•½ μž…λ ₯ κ°’(H)이 0μ‹œμΌ κ²½μš°μ—λŠ” H-1을 μ‹œμΌœμ£Όλ©΄ μŒμˆ˜κ°€ 되기 λ•Œλ¬Έμ— 24μ‹œ + Hλ₯Ό ν•΄μ€˜μ„œ 23μ‹œκ°€ 되게 ν•œλ‹€. 

4. 45λΆ„ 이상일 κ²½μš°μ—λŠ” μž…λ ₯된 κ°’(M)μ—μ„œ 45λΆ„λ§Œ λΉΌμ£Όλ©΄ λœλ‹€.

 

 

Solution

#include <stdio.h>

int main() {
    int H, M;
    scanf("%d %d", &H, &M);
    if(M < 45){
        H = H - 1;
        M = 15 + M;
        if(H < 0){
            H = 24 + H;
        }
    }
    else{
        M = M - 45;
    }
    printf("%d %d", H, M);
    return 0;
}
728x90