https://www.acmicpc.net/problem/1330
문제
두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다.
출력
첫째 줄에 다음 세 가지 중 하나를 출력한다.
- A가 B보다 큰 경우에는 '>'를 출력한다.
- A가 B보다 작은 경우에는 '<'를 출력한다.
- A와 B가 같은 경우에는 '=='를 출력한다.
코드
#나의 제출
A, B = input().split()
def compare(A, B):
if A > B:
print(">")
elif A < B:
print("<")
elif A == B:
print("==")
compare(int(A), int(B))
메모)
A, B = input().split()
input() 함수: 사용자로부터 키보드 입력을 받아 문자열(string)으로 반환하는 함수.
split() 메서드: 공백을 기준으로 문자열을 분리하여 리스트로 반환하는 메서드.
-> input().split(): 사용자가 입력한 값이 공백으로 구분된 두개의 값이라면, split()을 사용하여 이를 분리하고 각각의 값을 A변수, B 변수에 할당함
compare(int(A), int(B))
A와 B는 input에 의해서 문자열로 반환된 상태이다. 그러므로 키보드 입력은 정수로 해도 반환값은 문자열이기 때문에 비교연산을 사용할 수 없다.
그러므로 int() 함수를 통해 정수값으로 type을 바꾸는 과정이 필요하다.
elif A == B:
print("==")
>와 < 의외의 비교연산은 == 밖에 없으므로 elif 대신 else 사용해도 된다.
숏코드
a,b=map(int,input().split())
print([['>', '<'][a<b],'=='][a==b])
해설)
a,b=map(int,input().split())
map(함수, 함수를 적용할 객체, ...): 주어진 함수를 순회 가능한 객체(예: 리스트)의 각 요소에 적용하여 새로운 결과를 반환함.
즉 위의 코드는 다음과 같다.
input().split()을 통해서 생성된 a 문자열과 문자열에 int() 함수를 적용한다. a와 b는 바로 정수값을 가지게 된다.
print([['>', '<'][a<b],'=='][a==b])
- [A, B][조건] :
리스트 [A, B]가 있다. 조건이 True이면 리스트 [A, B]의 인덱스 1에 해당되는 값인 B를 반환한다. False이면 0에 해당되는 인덱스의 값인 A를 반환한다.
- ([['>', '<'][a<b],'=='][a==b])
조건 a==b 가 True이면 "==" 반환. False이면 ['>', '<'][a<b] 를 반환
['>', '<'][a<b] 를 반환하면서 다시 a<b 가 True이면 '<' 를 반환. False이면 '>' 를 반환.
'IT학습 > CodingTest' 카테고리의 다른 글
[백준/Bronze V] 별 찍기 - 1 - 2438 (0) | 2024.01.18 |
---|---|
[백준/Bronze V] 사칙연산 - 10869 (0) | 2024.01.18 |
[백준/Bronze V] 새싹 - 25083 (0) | 2024.01.14 |
[백준/Bronze V] 고양이 - 10171 (0) | 2024.01.10 |
[백준/Bronze V] 단어 길이 재기 - 2743 (0) | 2024.01.04 |