-
[파이썬/Python] 백준 1330번(두 수 비교하기) 단계별로 풀어보기깜빡의 취미/파이썬을 합니다. 2021. 7. 25. 11:59728x90
문제는 다음과 같다.
이번 문제부터는 'if문' 카테고리다. if문은 일종의 질문이라고 이해하면 편하다. 질문의 답이 '예'이냐, '아니요'이냐에 따라 결과가 달라진다. 아래의 예문을 보자. if 뒤 질문이 참이냐 거짓이냐에 따라 결과가 달라지게 된다.
if a==1: -> 만일 이 문장이 참이라면(= 질문에 '예'라고 대답하게 된다면) print('a는 1입니다.') -> 이 문장을 수행! else: -> 만일 그렇지 않다면(= 질문에 '아니요'라고 대답하게 된다면) print('a는 1이 아닙니다.') -> 이 문장을 수행!
이때 '=='이라는 기호를 보고 이상하다고 느끼셨을 분들을 위해 설명을 덧붙이자면, if문 뒤 문장에서 같고 다름, 대소 관계 등을 표현하는 법이 조금 다르다. 아래에 간단하게 정리해 두었다. 물론, '=' 기호가 없는 '<'이나 '>'은 우리가 이미 알던 바와 같다.
A == B: A와 B는 같다 A != B: A와 B는 다르다 A <= B: B는 A 이상 A >= B: B는 A 이하
추가로 if문 아래 여러 가지 조건문을 한 번에 처리하고 싶다면, 'elif'를 사용해 보자.
# else를 쓰지 않아도 if문은 작동하지만, 백준 결괏값을 기준으로 수행 시간이 좀 더 걸립니다. 따라서 elif는 유용합니다.
아무튼 그래요.if a==1: print('a는 1입니다.') elif a==2: print('a는 2입니다.') else: print('a는 1도 2도 아닌 것 같아요.')
이때 주의해야 할 점은, elif문에 도달하기 전 if문이 참이라면 elif문은 실행되지 않는다는 것이다. 따라서 if문에 따라 좌우되지 않아야 하는 식을 구상한다면, elif문보다는 개별적인 if문을 여럿 사용해야 할 것이다.
여기까지 이해했다면, 무리 없이 문제를 풀 수 있을 것이다. 혹시라도 궁금하실 분들을 위해 답안 예시를 몇 가지 보여드린다.
[답안 예시 1] A, B = map(int, input().split()) if A > B: print('>') elif A < B: print('<') elif A == B: print('==') else: pass
첫 번째 답안 예시는 총 세 개의 질문을 던져 준다. 'A > B인가요?' 'A < B인가요?' 'A = B인가요?' 이 질문에 답하여 참이냐 거짓이냐에 따라 결괏값을 출력하게 된다.
# map(int, input(). split())에 대해서는 앞선 단계별로 풀어보기를 접했다면 이미 알고 계시겠지만, 혹시라도 모르실 분들을 위해!! 관련하여 설명해 둔 링크를 공유합니다.
[답안 예시 2] A, B = map(int, input().split()) if A == B: print('==') elif A < B: print('<') else: print('>')
그런데, 잠시 생각을 바꿔 보자. A가 B와 같지도 않고, 작지도 않다면, 클 수밖에 없지 않을까? 해당 예시는 질문을 두 개만 던진다. 'A와 B가 같나요?' '아니라면, A는 B보다 작은가요?' 둘 다 아니면 남는 것은 'A가 B보다 큰 경우'뿐이다. 따라서 '>'를 출력해 주면 된다.
# 시간도, 코드 길이도 줄이는 방향으로 코딩하는 것이 목표인데, 그 와중에 가독성까지 챙기려니 저의 실력으로는 하루하루 한계가 느껴집니다. 개인적으로 풀었던 문제를 다시 검토하면서 새 방법을 찾아보는 방식이, 실력을 높이는 데 꽤나 도움이 되는 것 같습니다. 여러분도 제 글을 보시고 도움이 되셨다면 좋겠습니다. 감사합니다.
'깜빡의 취미 > 파이썬을 합니다.' 카테고리의 다른 글
[파이썬/Python] 백준 2753번(윤년) 단계별로 풀어보기+ [2월 29일 생일 챙기기] (0) 2021.08.08 [파이썬/Python] 백준 9498번(시험 성적) 단계별로 풀어보기+ [밑으로 갈수록 쉬워지는 답안 3개 모음] (0) 2021.08.01 [파이썬/Python] 백준 2588번(곱셈) 단계별로 풀어보기 + [문제 완벽 재현! 문제처럼 결과값들 출력하기] (2) 2021.07.18 [파이썬/Python] 백준 10430번(나머지) 단계별로 풀어보기 + [결과값끼리 같은지 확인하기(feat. 귀차니즘)] (2) 2021.07.11 [파이썬/Python] 백준 10869번(사칙연산) - 단계별로 풀어보기 + [간단한 오류 잡기(feat. 나눗셈)] (0) 2021.07.04