https://programmers.co.kr/learn/courses/30/lessons/12933
다음 문제는 정수 n이 입력 되었을 때, n을 내림차순으로 정렬해 반환하는 문제입니다.
- 정수 n을 sort와 reverse 함수를 사용할 수 있는 list의 형태로 변환해준다
- 정렬된 정수 n을 리스트 형태에서 정수 형태로 합쳐준다.
def solution(n):
n_list = list(str(n))
n_list.sort(reverse=True)
answer = int("".join(n_list))
return answer
- join 함수는 리스트의 문자열들을 합치는 역할을 한다.
PROTOTYPE: "".join(리스트) && "특정 문자열".join(리스트)
# 1. "".join(리스트) 형태입니다.
>>> str = "Hi my name is limcoing"
>>> splitted_str = str.split()
>>> print(splitted_str)
['Hi', 'my', 'name', 'is', 'limcoing']
>>> joined_str = "".join(splitted_str)
>>> print(joined_str)
Himynameislimcoing
# 2. "특정 문자열".join(리스트) 형태입니다.
>>> str = "Hi my name is limcoing"
>>> splitted_str = str.split()
>>> print(splitted_str)
['Hi', 'my', 'name', 'is', 'limcoing']
>>> joined_str = "-".join(splitted_str)
>>> print(joined_str)
Hi-my-name-is-limcoing
- split() 함수는 문자열을 쪼개주는 함수입니다. 이 함수는 파라미터로 구분자를 주면 해당 구분자를 기준으로 문자열을 잘라 리스트 형식으로 반환합니다. 만약 파라미터에 아무것도 주지 않으면 공백을 기준으로 문자를 나눠줍니다.
PROTOTYPE: 문자열.split(구분자)
>>> str = "Hi my name is limcoing"
>>> splitted_str = str.split()
>>> print(splitted_str)
['Hi', 'my', 'name', 'is', 'limcoing']
1. reverse 함수는 list 타입에서 제공하는 함수입니다.
l = ['a', 'b', 'c']
t = ('a', 'b', 'c')
d = {'a': 1, 'b': 2, 'c': 3}
s = 'abc'
l.reverse() # list의 순서를 뒤집어줌
t.reverse() # AttributeError: 'tuple' object has no attribute 'reverse'
d.reverse() # AttributeError: 'dict' object has no attribute 'reverse'
s.reverse() # AttributeError: 'str' object has no attribute 'reverse'
2. reverse는 값을 반환하지 않고, 단순히 해당 list를 뒤섞어 줍니다.
l = ['a', 'b', 'c']
l_reverse = l.reverse()
print(l_reverse) # None
print(l) # ['c', 'b', 'a']
1. reversed는 내장함수로, list에서 제공하는 함수가 아닙니다.
l = ['a', 'b', 'c']
t = ('a', 'b', 'c')
d = {'a': 1, 'b': 2, 'c': 3}
s = 'abc'
reversed(l) # <listreverseiterator object at 0x101053c10>
reversed(t) # <reversed object at 0x101053b50>
reversed(d) # TypeError: argument to reversed() must be a sequence
reversed(s) # <reversed object at 0x101053c10>
2. reverse는 'reversed' 객체를 반환합니다.
l = ['a', 'b', 'c']
t = ('a', 'b', 'c')
s = 'abc'
reversed(l) # <listreverseiterator object at 0x101053c10>
reversed(t) # <reversed object at 0x101053b50>
reversed(s) # <reversed object at 0x101053c10>