본문 바로가기
  • 초부득3 - 어제보다 나은 내일을 위해
  • 꿈이 현실이 되는 날까지
sw사관학교 정글 2기/01 기초,재귀,완전탐색, 정렬

[기초-문자열] 백준 2908번 상수 with Python3

by 금의야행 2021. 8. 7.

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

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

문제

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

내 풀이

a = list(input().split())
b = int(a[0][::-1])
c = int(a[1][::-1])
if b > c:
    print(b)
else:
    print(c)

해설

역순으로 재배치해야 하기 때문에 역순으로 재배치 후 숫자로 변환하였다. 역순으로 변환할 때는 범위 선택 연산자를 [::-1]로 지정해서 문자 배열을 뒤집어서 반환되도록 했다.

 

숫자 타입은문자열처럼 분리해서 사용할 수 없어서 먼저 변환을 하고서 숫자로 변환했다. 숫자를 [::-1] 연산자로 지정할 때에는 TypeError가 발생한다. 'int' object is not subscriptable 사유로 int 타입은 사용 할 수 없다고 한다. 

정답 풀이

num1, num2 = input().split()
num1 = int(num1[::-1])  # [::-1] : 역순
num2 = int(num2[::-1])

if num1 > num2:
    print(num1)
else :
    print(num2)

출처:https://ooyoung.tistory.com/72

 

해석

 

댓글