1. 문제
- 두 수 비교하기 → 대소비교
2. 출제의도 파악하기
- if문을 활용하도록!
3. 풀이
- 경우1 두 수를 빼고 그 결과를 가지고 대소비교 가능
- 경우2 두 수 자체를 부등호 이용해 비교 가능
경우1
두 수를 뺐을 때의 결과가 양수이면 앞의 수가 크고,
음수이면 뒤의 수가 크고,
결과가 0이면 두 수의 절대값이 같다는 개념으로 풀었다.
x, y = map(int, input().split())
result = x - y
if result > 0:
print('>')
elif result < 0:
print('<')
else:
print('==')
경우2
부등호를 통해 직접 두 수의 대소비교도 가능하므로,
경우1에서 두 수를 뺀 부분을 제거하고 풀 수 있다.
x, y = map(int, input().split())
if x > y :
print('>')
elif x < y:
print('<')
else:
print('==')
4. 남의 버전 분석
# 숏코딩
x, y = map(int, input().split())
print(['><'[x<y], '=='][x==y])
- 리스트의 인덱스를 활용해 푼 숏코딩
1) 리스트 부분 : ['><'[x<y], '==']
2) 위 리스트의 인덱스 부분 : [x==y]
1)-1 리스트 속 문자열 부분 : '><'
1)-2 1)-1의 인덱스 부분 : [x<y]
숏코딩 풀이
2) [x==y]
2)의 결과는 0 또는 1을 갖게 된다.
그 이유는 x==y가 True은 1을 의미하고, False일 땐 0을 갖게 된다.
그래서 [x==y]는 [0] 혹은 [1]이 되므로 1)의 인덱스로 쓰일 수 있게 된다.
1) ['><'[x<y], '==']
2)에 의해 둘 중에 하나가 선택되게 된다.
만약 2)의 결과가 [0]이 된다면, 1)-1 부분에 접근할 것이다.
그럼 1)-2 부분이 참인지 거짓인지에 따라 '><'의 일부분을 출력하게 된다.
- 문자열은 인덱스를 갖는다.
- 또 다른 남의 버전
# print 안에 if 사용
a, b = map(int, input().split())
print('>' if a > b else ('<' if a < b else '=='))
5. 출력 확인
'백준' 카테고리의 다른 글
백준 2753 윤년 파이썬 (0) | 2022.02.11 |
---|---|
백준 9498 시험 성적 파이썬 (0) | 2022.02.10 |
백준 2588 곱셈 (0) | 2022.02.08 |
백준 10430 나머지 파이썬 (0) | 2022.02.07 |
백준 10869 사칙연산 파이썬 (0) | 2022.02.06 |