IT학습/CodingTest

[백준/Bronze V] 두 수 비교하기 - 1330

바틀비 2024. 1. 6. 16:49

https://www.acmicpc.net/problem/1330

 

1330번: 두 수 비교하기

두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

www.acmicpc.net

문제

두 정수 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이면 '>' 를 반환.