본문 바로가기

programming/알고리즘 풀이

백준 2884번 [C,C++ ,Python] IF문

반응형
SMALL

# 2884 ( IF 문 int ) 

1. 정수 입력 2개 (변수 2개 H, M ) 

2. 시간은 24시 기준으로 표현 

3. 시작은 H= 0 , M =0  끝 H =23 , M 59

 

# 45분 일찍 알람설정하기 분석

  EX ] 9: 00 -> 8: 15  

        9: 20 -> 8: 35

        9: 44 -> 8 :59

-------------------------------------

         

       9: 45 -> 9: 00

       9: 50 -> 9: 05

 

        0: 0 (24: 00) -> 23:15

------------------------------------

M < 45       M = 60 - 45 + M

H == 0  H = 23 ,

H = H -1 , 


C

#include <stdio.h>

int main()
{
int M = 0 , H =0;

scanf("%d %d", &H, &M);

if( M < 45 )
{
    if( H <= 0 ) H = 23;
    else H = H-1;
    M = 15 + M;
}
else
{
	M = M-45;
}

printf("%d %d",H,M);

return 0;
}

 


C++

#include<iostream>

using namespace std;

int main()
{
int H =0 , M= 0;

cin >> H;
cin >> M;

if( M < 45 )
{
	M = 15 + M;
    if( H < 1)
    {
        H = 23;
    }
    else
    {
	    H = H-1;

    }
}
else
{
	M = M-45;
}

cout << H <<" "<<M <<endl;

return 0;
}

python

H , M = map(int,input().split())
# H , M = input().split()
# H = int(H)
# M = int(M) 대체가능

if M > 44:
    print(H,M-45)
elif M < 45 and H > 0:
    print(H-1, M+15)
else:
    print(23, M+15)
더보기

input() 함수는 사용자 입력함수이고 사용자가 입력한 데이터는 무조건 문자열 자료형으로 받아들이는 함수이다 . 

즉 정수형으로 변환하고자한다면 cast연산자 int() , float(), str(), format()을 사용하여 자료형을 변환해주어야한다.

 

여기서 input값에 한번에 여러 개의 입력값을 받기위해서는 input().split()을 사영하여 여러 함수를 받으면 된다 생각했었다.

split()함수는 문자열을 자르는 함수이다 . 

- 변수1, 변수2 = input().split() 

- 변수1, 변수2 = input().split('기준문자열')

- 변수1, 변수2 = input('문자열').split()

- 변수1, 변수2 = input('문자열').split('기준문자열') 인경우이다 . 

입력값은 공백을 기준으로 분리한다 . ( input () 함수에 split()를 사용시 ) 

 

입력값 H, M = map(int, input().split())을 으로 써도 무방함 .

 

 


 

반응형
LIST