공대생

백준 2908 상수 Python 본문

스터디/백준

백준 2908 상수 Python

상수나무 2022. 1. 4. 16:13

내 접근법은 다음과 같았다.

1. 세 자리 수 두 개 입력받기

2. 각 수의 순서 바꾸기

3. 수 비교

 

알게 된 것

 

(1) split().....

num = input().split
result = list()

for i in range(2):
    temp = list()
    for a in range(2, -1, -1):
        temp.append(num[i][a])
    result.append("".join(temp))
        

if(int(result[0]) > int(result[1])):
    print(result[0])
else:
    print(result[1])

처음엔 위와 같이 num으로 수 배열 하나로 입력을 받고 이를 2차원배열 방식을 이용해서 입력받은 숫자의 순서를 거꾸로 바꾸려고 했다. 하지만 

'builtin_function_or_method' object is not subscriptable

이 오류가 뜨면서 실패. 이유는 split에 ()함수 표시를 안해줘서였다..

 

(2) 배열 문자로 이어붙이기: "".join(배열이름)

만약 a = ['a', 'b', 'c'] 인 배열이 있으면 

result = "".join(a)

를 사용하면 result = 'abc' 가 된다.

 

 

 

최종답안코드

num = input().split()
result = list()

for i in range(2):
    temp = list()
    for a in range(2, -1, -1):
        temp.append(num[i][a])
    result.append("".join(temp))
        

if(int(result[0]) > int(result[1])):
    print(result[0])
else:
    print(result[1])

 

 

오류때문에 2차원배열식 접근이 안되는 줄 알고 수를 각각의 변수에 넣어서 처리해보기도 했다.

(이건 최종답안보다 코드 길이가 길어서 탈락)

num1, num2 = input().split()
temp = list()
result = list()

for a in range(2, -1, -1):
    temp.append(num1[a])
temp1 = "".join(temp)

temp.clear()

for b in range(2, -1, -1):
    temp.append(num2[b])
temp2 = "".join(temp)



if(int(temp1) > int(temp2)):
    print(temp1)
else:
    print(temp2)

 

 

그리고 검색 후 알게 된 숫자 순서를 바꾸는 쉬운 방법.

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

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

이렇게 간단하고 쉬운 방법이 있었다니.. 자괴감 쩐다

'스터디 > 백준' 카테고리의 다른 글

백준 1012 유기농배추 Python  (0) 2022.05.21
백준 18111 마인크래프트 Python  (0) 2022.05.19
백준 11401 이항 계수 3 Python  (0) 2022.03.06
백준 5622 다이얼 Python  (0) 2022.01.04
백준 4673 셀프넘버 Python  (0) 2022.01.03
Comments