목록자료구조 (6)
매일 매일 미라클 코딩
딕셔너리 타입은 JSON과 같은 {key: value} 구조를 갖고 있다. set 처럼 중괄호를 사용하기 때문에 빈 set 이나 dictionary 를 선언할 때 헷갈릴 수 있다. 중괄호만 쓰면 일단 dict 타입이고, set 타입을 선언하려면 set() 을 사용한다. a={} #dictionary 타입 b=set() #set을 확실히하려면 이렇게 선언 print(a,type(a)) print(b, type(b)) # 결과 # {} # set() dict 타입의 기본 활용 JSON 처럼 key 와 value 값을 가진다. s={'홍길동','홍길동','임꺽정','장길산'} info ={'홍길동':'활빈당','임꺽정':'의적','장길산':'광대'} print(s,type(s))#결과: {'홍길동', '장길산..
리스트 타입은 원래도 많이 쓰지만 튜플, 셋, 딕셔너리 타입은 데이터 타입의 속성만 알아도 해결할 수 있는 문제가 많아진다. 튜플: 값을 여러개 묶어서 하나처럼 사용한다. 순서가 중요하며 읽기 전용이다 a,b,c, = 10,20,30 (a,b,c) = (b,c,a) #튜플 객체 끼리의 복사 print(a,b,c)#결과: [20, 30, 10] def arith(a,b): return a+b, a-b, a*b, a/b #파이썬에서는 한번에 여러개 리턴이 가능하다. 튜플 타입으로 반환하기 때문. n1, n2, n3, n4 = arith(4,2) print(n1, n2, n3, n4) #결과 : 6, 2, 8, 2.0 셋: 순서가 없는 집합. 중괄호 { } 를 사용한다. 합집합, 교집합, 차집합 개념을 직접 ..
파이썬 문법이 쉽다고들 하지만, 오히려 너무 쉬워서 '이게 돼?' 싶은 마음에 막상 활용해야할 순간에 떠오르지 않곤 한다. (알고리즘 공부에 대한 현타가 오긴하지만) 외워 놓으면 작업시간을 많이 단축할 수 있는 자료구조형 데이터타입과 사용 가능한 함수를 정리해본다. 리스트 : 순서가 있는 리스트 자료구조 (삽입/삭제가 가능하다.) 1) 문자열 연결하기 c=["Life","is","too","short"] print(c) print("-".join(c)) #문자열 연결자 지정 (int일때도 적용 가능하다) # 결과: #['Life', 'is', 'too', 'short'] #Life-is-too-short a=[1,2,3] b=[3,4,5,6] c= a+b print(c)# 결과:[1, 2, 3, 3, 4..

BFS는 큐 자료구조에 기초하여 구현이 간단하다. deque 라이브러리를 이용한다. 가까운 노드부터 탐색하는 알고리즘으로, 최대한 멀리있는 노드를 우선 탐색하는 DFS 와 반대이다. 인접 노드를 작은 순으로 큐에 담고, 다음 turn에서 빼므로 (선입선출) 자연스럽게 가까운 노드 순으로 방문하게 된다 DFS(깊이우선탐색) 보다 실제 수행시간이 짧다 = 빠르다. 1) 탐색 시작 노드를 큐에 삽입하고 방문처리를 한다 2) 큐에서 노드를 꺼내, 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문처리를 한다. 3) 2)의 과정을 더이상 수행할 수 없을 때 까지 반복 이번에도 위 그래프를 너비우선탐색 방식으로 처리해보자 from collections import deque #BFS 메서드..