본문 바로가기
coding

[Baekjoon] 백준 Python 2단계 조건문(1330, 9498, 2753, 14681, 2884, 2525, 2480)

by 소담_아빠 2022. 8. 2.

생활 프로그래머가 되기 위해 화이팅!!

 

2단계 조건문

https://www.acmicpc.net/step/4

 

조건문 단계

점이 어느 사분면에 있는지 알아내는 문제

www.acmicpc.net

 


치팅(다른 사람의 소스코드를 그대로 복사해서 제출하는 행위)가 적발될 경우, 그 제출은 즉시 삭제되며 너무 많은 코드가 치팅으로 적발될 경우 해당 유저의 모든 제출을 삭제하므로 코드를 그냥 배끼면 안된다. 


 

 

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

 

1330번: 두 수 비교하기

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

www.acmicpc.net

= 는 변수를 할당할 때 사용함. == 이 a 와 b가 같은지 물어보는 것

 

a, b = map(int, input().split())
if a > b:
    print(">")
elif a < b:
    print("<")
elif a == b:
    print("==")

 

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

 

9498번: 시험 성적

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

www.acmicpc.net

 

 

a = int(input())
if 100 >= a >= 90:
    print("A")
elif 80 <= a <= 89:
    print("B")
elif 70 <= a <= 79:
    print("C")
elif 60 <= a <= 69:
    print("D")
else:
    print("F")

 

 

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

 

2753번: 윤년

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

www.acmicpc.net

 

!= 은 좌우의 값이 틀리면 참이 되는 수식이다. 

400이면 무조건 1이므로 참으로 생각하고, 이 후 (  )로 4의 배수, 100의 배수에 관해 참인지 거짓인지 알아본다.

a = int(input())
if ((a % 4) == 0 and (a % 100) != 0) or (a % 400) == 0:
    print("1")
else:
    print("0")

 

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

 

14681번: 사분면 고르기

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

www.acmicpc.net

a = int(input())
b = int(input())
if  a > 0 and b > 0:
    print("1")
elif a < 0 and b > 0:
    print("2")
elif a < 0 and b < 0:
    print("3")
else:
    print("4")

.

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

 

2884번: 알람 시계

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

www.acmicpc.net

a, b = map(int, input().split())
if  b >= 45:
    print(a, b-45)
elif a > 0 and b <= 45:
    print(a-1, b+15)
elif a == 0 and b <= 45:
    a = 23
    print(a, b+15)

 

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

 

2525번: 오븐 시계

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

www.acmicpc.net

먼저 종료되는 시간이 분만 바뀌는 경우를 생각해보고 출력한다. 

이 후 시가 바뀌는 경우 24시 이상이 되는 경우와 24가 안되는 경우를 나누어 생각한 후 제출

오답이 되서 찾아보니 60분이 되는 경우가 빠져있었다.

a, b = map(int, input().split())
c = int(input())
if  (b + c) < 60:
    print(a, b + c)
elif (b + c) > 60:
    d = a + (b + c)//60 
    if d >= 24:
        print(d - 24, (b + c)%60)
    elif d < 24:
        print(d, (b + c)%60)
elif (b + c) == 60:
    d = a + 1
    if d >= 24:
        print(d - 24, 0)
    elif d < 24:
        print(d, 0)

 >= 을 사용하면 코드를 줄일 수 있다.

a, b = map(int, input().split())
c = int(input())

if  (b + c) < 60:
    print(a, b + c)

elif (b + c) >= 60:
    d = a + (b + c)//60 
    if d >= 24:
        print(d - 24, (b + c)%60)
    elif d < 24:
        print(d, (b + c)%60)

 

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

 

2480번: 주사위 세개

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

www.acmicpc.net

a, b, c = map(int, input().split())
if  a == b == c:
    print(10000+a*1000)
elif a == b or b == c or c == a:
    if a == b:
        print(1000 + a*100)
    elif b == c:
        print(1000 + b*100)
    else:
        print(1000 + c*100)
else:
    if a > b and a > c:
        print(a*100)
    elif b > a and b > c:
        print(b*100)
    else:
        print(c*100)

max(a,b,c)를 사용하면 최대값을 더 쉽게 구할 수 있다.

a, b, c = map(int, input().split())
if  a == b == c:
    print(10000+a*1000)
elif a == b or b == c or c == a:
    if a == b:
        print(1000 + a*100)
    elif b == c:
        print(1000 + b*100)
    else:
        print(1000 + c*100)
else:
    print(max(a, b, c) * 100)