[파이썬] 딕셔너리(Dictionary) 자료형 정리 대응관계를 나타내는 자료형을 연관 배열 또는 해시라고 한다. 파이썬에서 이러한 자료형을 딕셔너리라고 하며, key와 value값을 가진 자료들로 목록화할 수 있다. {key : value} 형식으로 지정된다. dic = { 'name' : 'mom', 'age' : 30, 'birth' : 1225 } key와 value는 : 로 구분되어지며 각각의 쌍을 , 로 구분한다. dic이라는 딕셔너리에 name, age, birth라는 key가, name, age, birth라는 키에 각각 mom, 30, 1225라는 value가 할당된다. key값은 정수가 될 수도 있고, value 값에는 튜플이나 리스트가 올 수도 있다. 딕셔너리 쌍 추가, 제거 dic ..
[파이썬/자료구조] 스택(stack) LIFO(Last In First Out) 방식. 후입 선출이라고도 하며, 가장 먼저 들어간 값이 맨 아래에 깔린다. 가장 나중에 넣은 데이터를 가장 먼저 빼낼 수 있다. 프링글스 통에서 과자를 추가하고 꺼내는 형태와 같다. 스택 구조의 연산 Push : 스택에 값 추가. Pop : 스택 가장 마지막 원소를 삭제하고 반환. Peek : 스택 가장 마지막 원소를 반환.(삭제 x) Empty : 스택이 비어있으면 1, 아니면 0을 반환한다. 덱 라이브러리를 사용하면 리스트로 구현한 것보다 훨씬 빠르다. from collections import deque dq=deque() # 덱 생성 dq.append() # 덱의 가장 오른쪽에 원소 삽입 dq.popleft() # 가..
[파이썬] 큐(queue) 큐는 선입선출, FIFO(First In First Out) list append : 마지막에서 삽입 pop : 마지막꺼 제거 pop(n) : n번째 인덱스 값 제거 insert(n, x) : n번째 인덱스에 x값 삽입 queue = [1, 2, 3] queue.append(4) print(queue) queue.pop() print(queue) queue.pop(0) print(queue) queue.insert(0, 3) print(queue) [1, 2, 3, 4] [1, 2, 3] [2, 3] [3, 2, 3] 그러나 list는 무작위 접근(random access)에 최적화된 자료 구조이며 시간 복잡도가 O(N)이므로 데이터가 많아질 수록 느려짐. deque doubl..
파이썬 자료구조/알고리즘 10 : 소수 찾기 알고리즘 다음은 for~else문을 이용해서 1~1000까지의 소수를 출력하는 코드입니다. counter = 0 for n in range(2, 1001): for i in range(2, n): counter += 1 if n % i == 0: break else: print(n) print(f"나눗셈 실행 횟수 : {counter}") 2 3 5 (...) 983 991 997 나눗셈 실행 횟수 : 78022 for~else문은 for문이 break 등으로 빠져나가지 않고 끝까지 반복문을 수행했을 때 else문을 실행하는 구조입니다. 또한 for문이 실행되지 않는 경우에도 else문이 실행됩니다. 소수는 1과 자기 자신을 제외한 어떤 정수로도 나눠지지 않는..
파이썬 자료구조/알고리즘 09 : for ~ else문 응용하기 if 조건문과 따라다니는 else구문을 파이썬에서는 반복문과 함께 사용할 수 있습니다. for문이 중간에 break로 빠져나오지 않고 완전히 끝까지 실행되었을 경우 else문의 명령어가 실행됩니다. 또한 for문이 아얘 실행되지 않는 경우에도 else문이 실행됩니다. for와 else는 같은 라인에 쓰도록 합니다. 다음은 for~else문을 사용하지 않은 코드입니다. lst = [1, 3, 6, 4, 2] flag = 0 for i in lst: if i > 5: flag += 1 print('반복문 탈출') break if flag != 0: print('5보다 큰 수 발견') else: print('5보다 큰 수 없음') 반복문 탈출 5..
객체에 따른 인수, 매개변수의 교환 방식 인자, 인수, 매개변수의 차이 def sumsum(n): # n = 인자/매개변수/parameter s = 0 while n > 0: s += n n -= 1 return s x = int(input()) print(f'1부터 {x}까지 정수의 합 : {sumsum(x)}')# x = 인수/argument 파이썬에서 인수와 매개변수의 교환 방식 (이뮤터블의 경우) Immutable : 변경 불가능한 객체 String, tuple, 숫자 등 def sumsum(n): s = 0 while n > 0: s += n n -= 1 return s x = int(input()) print(f'1부터 {x}까지 정수의 합 : {sumsum(x)}') >> 5 1부터 5까지 ..