[백준 1330 파이썬] 두 수 비교하기 - 조건문 (if, elif, else)
[백준 1330 파이썬] 두 수 비교하기 - 조건문 (if, elif, else)
안녕하세요.
BOJ 두번째 카테고리 '조건문'입니다. 특정 조건에 따라 다른 결론에 도달하는 조건문은 반복문과 더불어 알고리즘에서 가장 핵심적인 부분으로 생각되는데요. 첫번째 문제니까 가벼운 마음으로 시작해 보시죠!
문제 분석
입력: 두 정수형 변수
A와 B 두 '정수형' 변수를 입력해야 합니다. map함수와 input().split()을 이용해서 두 정수를 입력하는 방법은 이제 익숙하시겠지만 혹시 헷갈리시면 입출력과 사칙연산 'A+B' 포스팅을 참고해 보셔도 좋을 것 같네요!
출력: 조건문 구성
한글로는 'X면 Y', 영어로는 'if X then Y', 파이썬은 'if X: Y' 형식으로 영어와 비슷하죠?
X 부분은 명제의 참/거짓을 판별합니다. Y부분은 X가 '참'일 경우 결과값을 지정하죠. X가 '거짓'일 경우 'else: Z' 형식으로 다른 결과값을 지정하거나, 아무것도 지정하지 않아도 무방합니다.
참/거짓 이분법이 아닌 제3의 선택지가 필요하다면 어떻게 할까요? 'elif x: y' 문장을 중간에 끼워넣으면 됩니다! ('elif'는 파이썬에서 'else if'의 줄임 표기입니다.)
문제에서 X는 A와 B의 대소 (크고 작음)를 비교해서 그 결과에 따라, Y에서 각기 다른 출력값을 지정해 주면 됩니다.
'대소'는 부등호 '>', '<'를 사용하고 '같음'은 '==' 연산자를 사용해서 비교할 수 있고, 출력은 연산자 자체를 문자열 형식으로 출력하는 것이니 어렵지 않겠네요!
문제에서 조건은 3가지로 모든 경우를 나열해도 되지만, if → elif → else 형식으로 논리를 전개할 수도 있습니다. 아래 답안에서 자세히 살펴보죠!
답안
문제에서 제시한대로만 구성하면 아래와 같겠죠? A가 B보다 크거나, 작거나, 같거나 각각의 결과를 출력해 주어도 문제풀이에는 지장이 없습니다.
하지만, 문제가 복잡해질수록 위와 같은 방법을 사용하면 논리적 공백이나 중복이 발생할 가능성이 높아지겠죠! 모든 경우의 수를 지정하는 것 보다는 if / else문을 통해 categorical하게 구분해 주는 것이 효과적일 것 같습니다.
주의하실 점은 콜론(:) 이하 줄바꿈으로 결과값을 다른 줄에 기재할 경우, 두번째 줄은 반드시 앞에 4칸을 들여쓰기 해주어야 합니다. 파이썬에서 앞 문장 (if 등)에 이어서 작성한다는 표시죠! 'if'와 'elif', 'else'는 같은 level이기 때문에 같은 선상에 배치해 주어야 합니다.
제출 결과를 확인해 봅니다! 두구두구
참고
조건문의 앞부분과 같이 참/거짓을 판별하는 자료형을 부울 (bool)함수 또는 'boolean'이라고 합니다. 아래 예시에서와 같이 비교문 자체를 출력했을 때 결과값이 'True/False'로 출력되고 자료형이 'bool'로 표시되네요! 참고사항으로 기억만 해두시고 응용 사례는 나중에 문제풀이에서 필요할 때 자세히 살펴보도록 하겠습니다.
이만 마치도록 하겠습니다.
읽어주셔서 감사합니다.