본문 바로가기
Algorithm/Step by Step

[단계별로 풀어보기] 조건문

by lifeisgenie 2023. 3. 5.

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

 

1330번: 두 수 비교하기

두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

www.acmicpc.net

A, B = map(int, input().split())

if A>B:
    print(">")
elif A<B:
    print("<")
else: 
    print("==")

 

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

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

score = int(input())

if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >= 60:
    print("D")
else:
    print("F")

 

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

 

2753번: 윤년

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서

www.acmicpc.net

year = int(input())

if (year%4 == 0) and (year%100 != 0 or year%400 == 0):
    print(1)
else:
    print(0)

 

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

 

14681번: 사분면 고르기

점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.

www.acmicpc.net

x = int(input())
y = int(input())

if x>0 and y>0: #1사분면은 x, y 좌표가 모두 양수이므로
    print(1)
elif x<0 and y>0: #2사분면은 x좌표가 음수, y좌표가 양수이므로
    print(2)
elif x<0 and y<0: #3사분면은 x, y 좌표가 모두 음수이므로
    print(3)
else: #4사분면은 x좌표가 양수, y좌표가 음수이므로 
    print(4)

 

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

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net

H, M = map(int, input().split())

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

 

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

 

2525번: 오븐 시계

첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)

www.acmicpc.net

A, B = map(int, input().split())
C = int(input())
M = B+C #간단하게 풀이하고자 b+c를 m으로 했다.

#현재 몇분인지와 필요한 시간을 더했을 때 60보다 작으면 현재 시간이 늘어나지 않기 때문에 그대로 출력
if M<60:
    print(A, M)
'''A+M//60<24이면 현재 시간이 24, 즉 0시를 넘어가지 않고 
M>=60이면 현재 시간도 늘어나므로 10번 줄과 같이 출력'''
elif A+M//60<24 and M>=60:
    print(A+M//60, M%60)
'''A+M//60>=24이면 0시를 넘어가기 때문에 24를 빼고 
M때문에 현재 시간이 늘어나든 말든 상관없으므로 M의 나머지 값을 출력한다.'''
else:
    print(A+M//60-24, M%60)
A, B = map(int, input().split())
C = int(input())
    
'''
A+(B+C)//60가 24시 즉, 0시를 넘어가든 말든 24로 나눠 나머지를 구하면 24시를 굳이 안빼도 되고
현재 몇분인지와 필요한 시간을 더했을 때 60을 넘어가든 말든
60로 나눠 나머지를 구하면 분을 구할 수 있으므로 한 문장으로 정리할 수 있다.
'''
print((A+(B+C)//60)%24, (B+C)%60)

처음에는 모든 경우의 수를 조건문으로 풀었다. 근데 우리가 출력해야 하는 값이 나머지라는 것을 알아버려서 굳이 조건문을 이용하지 않아도 할 수 있었다.

 

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

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

n1, n2, n3 = map(int, input().split()) # 주사위 세걔 입력받음

if n1==n2==n3: #같은 눈이 3개가 나오는 경우
    print(10000+n1*1000)
#같은 눈이 2개가 나오는 경우
elif n1==n2:
    print(1000+n1*100)
elif n1==n3:
    print(1000+n3*100)
elif n2==n3:
    print(1000+n2*100)
else: #모두 다른 눈이 나오는 경우
    print(max(n1, n2, n3)*100) #max() 함수를 이용하여 그 중 가장 큰 눈을 구했다.