AI 공부 도전기

[Baekjoon] Python 1330번 두 수 비교하기

 

제출 1 - 121B 64ms 29284KB

 

일반적으로 입력을 받아 비교를 합니다. 

다만 저는 list에 한 문자에 받도록 했습니다.

 

1
2
3
4
5
6
7
= list(map(int, input().split()))
if a[0> a[1]:
    print('>')
elif a[0< a[1]:
    print('<')
else:
    print('==')
cs

 

제출 2 - 106B 56ms 29284KB

 

하나의 리스트에 2개의 값을 받는 것은 매우 소모적이기에 첫 번째 방법이 64ms으로 속도가 늦어졌기에 더 빠르게 하기 위해 아래와 같이 2개의 값으로 그냥 대응시켜 받았습니다.

 

1
2
3
4
5
6
7
8
a,b = map(int, input().split())
 
if a > b:
    print('>')
elif a < b:
    print('<')
else:
    print('==')
cs

 

제출 3 - 76B 56ms 29284KB

 
더 줄이는 방법으로는 print 안에 조건문을 사용하는 방법이 있습니다.
이를 통해 더 Byte 수를 줄일 수 있습니다.
 

1
2
a,b = map(int, input().split())
print('==' if a==b else '<' if a<b else '>')

 

제출 4 - 61B 56ms 29284KB

 
제출 3 방식을 리스트 형식으로 표현하면 아래와 같습니다.
사용 법은 print([a,b][조건문])으로 조건문이 참이면 b를 출력, 거짓이라면 a를 출력하는 것입니다.
 

1
2
a,b = map(int, input().split())
print(['<>'[a>b],'=='][a==b])

 

제출 5 - 61B 56ms 29284KB

 
조건문이 달라졌을 때의 다른 표현법으로 dict에는 같은 수는 1개의 수로만 인식하기에 만약 조건문이 참이라면 a,b가 서로 다른 수로 인식되어 2-1의 값 즉 참이 되고 이를 통해 '<>'[a>b]의 형태로 다시 조건문으로 들어가게 됩니다.
물론 조건문이 거짓이라면 a,b가 같은 수로 인식되어 len({a,b})=1이 되고 1-1=0은 False이기 때문에 '=='가 출력됩니다.
 

1
2
a,b = map(int, input().split())
print(['==','<>'[a>b]][len({a,b})-1])

 

다양한 if문과 print, map을 통한 출력을 어떻게 하는 가에 따라 길이, 효율성이 다른 것을 확인할 수 있습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading