목록파이썬 문법 (6)
이호진
예를 들어, arr=[1,2,1,3]일 때, 4개를 뽑는 순열을 구현하려면 DFS를 이용하여 만들 수 있다. arr=[1,2,1,3] a='' result=[] visited=[0]*len(arr) def dfs(idx): global a if idx==len(arr): result.append(a) return for i in range(len(arr)): if visited[i]==0: visited[i]=1 a+=str(arr[i]) dfs(idx+1) visited[i]=0 a=a[:-1] dfs(0) 편의를 위해 문자열로 저장했다. 우선 dfs를 이용하는데 기본적으로 dfs는 탈출조건문과 계산식 두가지를 써야한다. (탈출조건식을 flag로하게되면 한개를 더 써야한다.) 자리 체크를 해줄 visi..
현재 스코프 내에서 전역변수도 아니고 지역변수도 아닌경우 nonlocal을 써야한다. 예를 들어, 이 경우엔 에러가 나고 이 경우엔 에러가 나지 않는다. 프로그래머스에서 코딩 연습을 할 때, solution함수 내부에서 코딩을 하는 경우가 대부분이기 때문에 global보다는 nonlocal을 쓰는 연습을 해야할 것 같다.
힙은 우선순위 큐를 구현하기 위하여 사용하는 자료구조 중 하나다. 스택은 가장 나중에 삽입된 데이터를 가장 먼저 삭제하고, 큐는 가장 먼저 삽입된 데이터를 가장 먼저 삭제한다. 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제한다는 점이 특징이다. 스택: 가장 나중에 삽입된 데이터가 추출됨 큐: 가장 먼저 삽입된 데이터가 추출됨 우선순위 큐: 가장 우선순위가 높은 데이터가 추출됨 import heapq def heapsort(iterable): h=[] result=[] for value in iterable: heapq.heappush(h,value) for i in range(len(h)): result.append(heapq.heappop(h)) return result result=he..
파이썬에서는 아스키코드에서 숫자를 아스키코드로 변환하거나 반대로 할 때, ord함수와 chr함수를 쓴다. 1. ord함수 print(ord(input())) B 66 2. chr함수 print(chr(int(input()))) 65 A 값을 입력받고 값이 알파벳인지 숫자인지 구분하기 위해선 isalpha와 isnumeric을 쓸 수 있다. 1. isalpha함수 a='ab' a.isalpha() True 2. isnumeric함수 a='3' a.isnumeric() True
1. lambda함수 함수를 만든다. 변수:조건 으로 쓴다. 리턴을 쓰지 않는다. f = lambda x,y,z:x*x+y*y+z*z f(1,2,3) 14 ->lambda x,y,z 로 x,y,z로 변수를 받을것이라고 해놓고, : 뒤에 조건을 써준다. 2. filter함수 필터링해주는 함수 filter안에 조건을 걸어서 필터링해준다. arr=[1,2,3,4,5,6,7,8,9] b=list(filter(lambda a:a%2==0,arr)) print(b) [2, 4, 6, 8] ->filter함수는 객체를 반환하므로 list와 같은 함수를 써야한다.
컴퓨터 시스템은 수 데이터를 처리할 때 2진수를 사용한다. 예를 들어 10진수 체계에서 0.3과 0.6을 더한 값은 0.9로 떨어지지만, 2진수에선 0.9를 정확히 표현할 수 없다. 최대한 0.9와 가깝게 표현하여 0.899999...으로 저장된다. a=0.3+0.6 print(a) 0.8999999999999999 이 경우에 round() 함수를 이용하여 해결할 수 있다. print(round(a,1)) 0.9 ->round() 함수는 인자를 하나만 넣을때 소수점 첫째 자리에서 반올림한다. print(round(a)) 1