카테고리 없음
15650 - N과M(2)
백수진
2021. 3. 19. 01:14
array = []
check = [0]*15
n , m = map(int,input().split())
def fun(cnt,be):
if cnt==m:
for i in range(0,cnt):
print(array[i],end = '')
print()
return
else:
for i in range(1,n+1):
if(i>be and check[i]!=1):
check[i] = 1
# array[cnt]=i => 이렇게 하려면 array에 원소가 있어야함.
# array = [0]*15로 0을 다 넣어줬던가 했어야함
array.insert(cnt,i)
#만약에 array에 원소가 없었다면 insert(번호,저장할값)을 이용해 넣어주기
fun(cnt+1,i)
check[i]=0
fun(0,0)
n,m (1)과 다른점은 array에 저장된 이전 값보다 더 큰 값이 와야한다는 것.
오름차순으로 정렬되어 있으니까 array에 들어간 바로 직전의 값보다 현재 들어오려고 하는 값이 더 크면 됨.
=> 이전 번호를 기억해야함, 비교해야함
before을 의미하는 be변수를 넘겨주면서 시작
//주척처리를 한 코드에서 에러가 남.
<오늘의 알게된점>
왜인지 찾아보니, IndexError: list assignment index out of range.
인덱스가 범위를 넘어섰다는데 범위지정을 해줘야했나?라고 생각해서 구글링.
알고보니, 배열에 원소가 없었다면 해당 원소를 넣을 번호에 특정 값을 넣을 수 없음.
-> 1. 배열을 0으로 초기화해서 사용할만큼의 크기를 잡아줌
array = [0]*15로 0값을 넣어줌
-> 2. array.insert(넣을위치,넣을값)을 통해서 넣어줄 수 있음