본문 바로가기

PYTHON/혼공파

[혼공챌린지] 2주차 혼공파 파이썬 선택미션, 백준 if문 문제

728x90

늦었지만 그냥 해보고 싶어서 쓰는거

말로만 설명하면 못 알아듣고 까먹을까봐 백준 문제를 풀어봤다

 

1330번 : 두 수 비교하기

백준 문제 1330번

n1과 n2를 입력받아서 첫번째 if문으로 들어간다

4, 5) n1이 n2보타 크다면 >를 출력

6) '그렇지 않으면' 즉, 첫번째 조건에 맞지 않는다면 그 다음 조건인 n1이 n2보다 작을 경우의 조건을 비교한다

8) 마지막 else에는 조건을 안 붙였다. 어차피 크다, 작다, 같다 중 남은 조건이 '같다'밖에 없으니 그냥 else를 써서 굳이 조건을 쓰지 않았다.

C언어에서는 if, else if, else를 쓸 수 있었던 것 같은데 파이썬에서도 그렇게 할 수 있는 것 같다!

 

이런 식으로 조건문은 if, elif, else로 쓸 수 있고 위부터 밑으로 차례대로 비교한다. 조건이 맞으면 if 다음 문장(예를 들어 print 같은 거)을 실행하는 방식이다!

 

 

9498번 : 시험 성적

백준 문제 9498번

위 문제와 같은 맥락...

조건이 이중 조건..? 90보다 크고 100보다 같거나 작아야하니까 and를 써서 조건 두 개 모두 참이어야만 하도록 했다

 

 

2753번 : 윤년

백준 문제 2753번

윤년 문제!

이건 어느 언어든 있는 것 같다

조건은 연도가 4의 배수이면서 100의 배수가 아닐 때 또는 400의 배수일 때가 윤년이다

 

다시 보자!

윤년은 연도가 4의 배수이면서 100의 배수가 아닐 때 또는 400의 배수일 때이다

이산수학 배울 때 and, or 공부하면서 말놀이(?)라고 생각했다. 문장에 답이 들어있기 때문에...,,,

 

4의 배수 이면서and로, 100의 배수가 아닐 때 또는 400의 배수일 때는 or로 하면 된다

즉) 연도 == 4의 배수 and ( 연도 != 100의 배수 or 연도 == 400의 배수 ) 라고 하면 된다.

근데 혹시나 오류가 생길 수도 있으니 괄호를 첨가했다.

 

4의 배수를 구하는 건 4로 나누었을 때 나머지가 0이라는 것이니까 요래요래 해보면 4번째 줄이 나온다!

 

 

14681번 : 4분면 고르기

백준 문제 14681번

처음에 n1, n2 = map(int, input("").split())으로 입력받게 했는데 런타임에러(ValueError)가 떴다

왜인지는 잘 모르겟음.. 혼공파에서 ValueError는 자료형 변환할 때 변환할 수 없는 것을 변환하려고 하면 뜬다고 했는데...

첫번째 문제는 이상 없었는데 이상하다.. 그래서 그냥 두 번 입력 받는 걸로 변경했다.

문제 설명에서 첫 줄에 x, 다음 줄에 y라고 한 거보면 애초에 두 줄로 입력받게 한 거라서 에러가 뜨게 한 것 같기도 하다..

 

이 코드는 마지막에 else로 끝냈는데 한 점이 0이면 몇 사분면인지 판별하기 어려워서 그런 조건들은 else에서 pass되도록 했다.

 

2884번 : 알람 시계

백준 문제 2884번

45분 일찍 알람 맞추기 문제..

조건문을 어떻게 쓸까 고민하다가 분이 45 이상이면 시가 -1 안 당해도 되니까 분을 기준으로 조건을 나누었다.

 

첫번째 if는 분이 45 이상이면 입력된 분에서 45 빼고 출력하면 된다

두번째 else에서는 안에 조건이 하나 더 있다. 살펴보면, 분이 45 미만일 때는 입력된 분에 60을 더하고 거기에서 45를 빼면 된다.

문제는 시 인데, 문제 설명에 보면 0:0부터 시간이 시작된다고 했다.

만약 11시 30분이면 11-1, 30+60-45해서 10시 45분이 출력될 수 있는데

0시 30분이면 0-1, 30+60-45가 되어서 -1시 45분으로 출력되는 것이다.

이를 방지하기 위해 조건을 하나 더 붙여서 시가 0이면 24에서 1을 빼는 걸로 했다. 입력된 시가 0이고 분이 45 이상이면 어차피 23시가 되어야 되니까 23으로 써도 된다.

입력된 시가 0이 아니라면 그냥 -1만 하면 된다.

 

 

백준 if문 문제를 다 풀어보았다! 조건문이 쉬워서 그런 걸 수도 있지만 어쨌든 뿌-듯!

728x90