옥수수와 식빵 그리고 코딩

백준 문제 풀이 if문 본문

BaekJoon

백준 문제 풀이 if문

옥식 2021. 10. 18. 23:26

1330번

1330번: 두 수 비교하기 (acmicpc.net)

 

1330번: 두 수 비교하기

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

www.acmicpc.net

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

조건이 3개이므로 elif 함수를 사용하였다

 


9498번

 

9498번: 시험 성적 (acmicpc.net)

 

9498번: 시험 성적

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

www.acmicpc.net

scr = input()
if 90 <= int(scr) <= 100:
    print("A")
elif 80 <= int(scr) <= 89:
    print("B")
elif 70 <= int(scr) <= 79:
    print("C")
else:
    print("F")

결과는 잘 나오는데 틀렸다.

문제를 제대로 보자

"60 ~ 69점은 D"가 빠짐!!

 

정답

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

2753번

2753번: 윤년 (acmicpc.net)

 

2753번: 윤년

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

www.acmicpc.net

문제를 이해 못해서 조금 많이 헤맸다.

https://wikidocs.net/images/page/88691/leap_year.png

위 흐름도를 참고하여 문제를 풀었다

x = input()
if x % 4 == 0:
    if x % 100 == 0:
        if x % 400 == 0:
            print(1)
        else:
            print(0)
    else:
        print(1)
else:
    print(0)

자꾸 오류가 떠서 한참 헤매다가 원인을 찾았다.

결괏값은 항상 문자열이므로 x를 정수형태로 바꿔야 한다.

주의하자

x = int(input())
if x % 4 == 0:
    if x % 100 == 0:
        if x % 400 == 0:
            print(1)
        else:
            print(0)
    else:
        print(1)
else:
    print(0)

올바른 결괏값이 나온다.

처음에는 elif를 사용하려 했는데 elif는 '그렇지 않고 만약~'의 뜻을 가진 부정 후 긍정이므로 이 문제에서는 사용할 수 없다.

 


14681번

 

14681번: 사분면 고르기 (acmicpc.net)

 

14681번: 사분면 고르기

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

www.acmicpc.net

조건을 판단하는 연산자(and, or, not)를 사용해야 한다.

x = int(input())
y = int(input())
if x > 0 and y > 0:
    print(1)
elif x < 0 and y > 0:
    print(2)
elif x < 0 and y < 0:
    print(3)
elif x > 0 and y < 0:
    print(4)

2884번

2884번: 알람 시계 (acmicpc.net)

 

2884번: 알람 시계

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

www.acmicpc.net

시계문제다. 어릴 때도 시계문제를 어려워 했던 기억이 난다...

근데 45분이나 일찍 설정하면 너무 일찍 일어나는거 아니냐 창영아

창영이는 그냥 알람을 듣고 바로 잘 일어나는 애다.

내 꿀팁은 15분 전부터 5분단위로 알람 맞추는 거다. 

 

m이 45보다 큰 경우와 작은 경우로 나누어 풀이하였다.

h, m = input().split(' ')
h = int(h)
m = int(m)
if m < 45:
    wm = m + (60 - 45)
else:
    wm = m - 45
if 45 > m:
    wh = h - 1
else:
    wh = h

print(wh, wm)

틀렸다.....

m이 0인 경우 -1이 아닌 23이 나와야 하기 때문에

 

그래서 수정했다

h, m = input().split(' ')
h = int(h)
m = int(m)
if m < 45:
    wm = m + (60 - 45)
else:
    wm = m - 45

if 45 > m:
    wh = h - 1
        if wh < 0:
            wh = 24 + wh
else:
    wh = h

print(wh, wm)

근데 오류난다...

  if wh < 0: 에서 들여쓰기 오류가 있다는데 모르겠다.

이걸 들여쓰기를 한번 덜해야 함!!

h, m = input().split(' ')
h = int(h)
m = int(m)
if m < 45:
    wm = m + (60 - 45)
else:
    wm = m - 45

if 45 > m:
    wh = h - 1
    if wh < 0:
        wh = 24 + wh
else:
    wh = h

print(wh, wm)

이걸 해결하는데 15분이 걸렸다...

오늘은 여기까지

Comments