reverse( )
: list 자료형에서 제공하는 함수, 값 반환 X
reversed( )
: 내장 함수, 리스트 튜플, 문자열에 사용 가능, 객체 반환
join( )
: 리스트의 문자열을 합친다.
"".join( list )
1. 단어의 개수(1152)
www.acmicpc.net/problem/1152
#단어의 개수
s = list(input().split())
print(len(s))
2. 상수
www.acmicpc.net/problem/2908
#상수
a, b = input().split(' ')
a = list(a)
b = list(b)
a.reverse()
b.reverse()
num1 = num2 = ""
for i in a:
num1 += i
for i in b:
num2 += i
num1 = int(num1)
num2 = int(num2)
print(max(num1, num2))
일단 먼저, 맨 처음 입력을 받자마자 list형으로 변환해주려고 a, b = list(input().split(' ')을 해주고 reverse함수를 쓰려고 그랬는데
전체 리스트 [ "734", "893"]이 되고, a는 734, b는 893이 되어서 내가 원하는 reverse를 쓰지도 못할 뿐더러
a, b = list(input().split(' ').reverse()로 하였다가 오류가 발생했다.
TypeError: cannot unpack non-iterable NoneType object
그래서 위 코드처럼
a, b = input().split(' ')
a = list(a)
b = list(b)
a.reverse()
b.reverse()
이렇게 해주면, a = ["4", "3, "7"] , b = ["3", "9", "8"]의 형태가 된다.
그 후, str이기 때문에 리스트 한 요소요소를 붙여주고 int로 변환해준 뒤, 큰 값을 출력해준다.
a, b = input().split(' ')
num1 = int("".join(i for i in a[::-1]))
num2 = int("".join(i for i in b[::-1]))
print(max(num1, num2))
위 코드가 주절주절 리스트 변환해주고 for문으로 한 번에 붙여줄 수는 없을까 어떤 방식이 좋을까 생각하다가
리스트와 문자열은 비슷하다! 따라서 위 for문에 적용한 것 처럼 [ : : -1]로 역순 처리를 해줄 수 있다.
그리고 join으로 문자열을 이어붙여주고 int변환 후, 큰 값을 출력해주도록 하였다.
반응형