숫자 비교하기
2024. 7. 1. 18:00ㆍ코딩테스트 입문
https://school.programmers.co.kr/learn/courses/30/lessons/120807
문제 설명
정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤ num1 ≤ 10,000
- 0 ≤ num2 ≤ 10,000
입출력 예
num1 | num2 | result |
2 | 3 | -1 |
11 | 11 | 1 |
7 | 99 | -1 |
입출력 예 설명
입출력 예 설명 #1
- num1이 2이고 num2가 3이므로 다릅니다. 따라서 -1을 return합니다.
입출력 예 설명 #2
- num1이 11이고 num2가 11이므로 같습니다. 따라서 1을 return합니다.
입출력 예 설명 #3
- num1이 7이고 num2가 99이므로 다릅니다. 따라서 -1을 return합니다.
단순한 비교 문제입니다. 조건문을 사용하면 빠르게 풀 수 있습니다.
파이썬으로 문제를 풀어보도록 하겠습니다.
def solution(num1, num2):
answer = 1 if num1 == num2 else -1
return answer
num1과 num2가 동일하다면 1, 아니라면 -1을 반환하는 코드입니다.
조건문을 사용한 가장 기초적인 풀이법입니다.
다른 방법을 한 번 소개해보겠습니다.
결국 이 문제는 num1과 num2를 비교하는 문제인데, 보통 True - False 문제는 1 - 0으로 정수화를 많이 사용합니다.
그러면 조금 생각해볼 수 있죠, num1과 num2가 동일하면 1, 아니라면 0이 반환되는데, 이 정수들을 가지고 1과 -1을 어떻게 만들 수 있을까?
1 = 1 * 2 - 1, 0 = 0 * 2 - 1 이렇게도 표현할 수 있습니다.
이 표현식을 기반으로 코드를 작성해보겠습니다.
def solution(num1, num2):
return int(num1 == num2) * 2 - 1
int 말고도 sum을 사용해도 동일한 결과입니다.
전 이런 코드가 되게 마음에 들어서 한 번 이런 식으로 풀어보았습니다.