Algorithm/Python (29) 썸네일형 리스트형 [Python] 큐(Queue) 큐(Queue)는 데이터를 선입선출(FIFO: First In, First Out) 방식으로 처리하는 자료구조다. 즉, 큐에 먼저 들어간 데이터가 먼저 나오는 구조다. 아래의 그림을 참고하면 이해하기 편하다. 그렇다면 파이썬에서는 큐를 어떻게 구현할 수 있을까? 1. list 범용 자료구조가장 간단한 방법은 list를 사용하는 것이다.queue.pop(0)을 이용하면 첫 번째 데이터를 제거할 수 있다.# 큐 구현 (리스트 사용)queue = []# 데이터 삽입 (Enqueue)queue.append(1) # 큐에 1 추가queue.append(2) # 큐에 2 추가queue.append(3) # 큐에 3 추가print("큐 상태:", queue) # [1, 2, 3]# 데이터 삭제 (Dequeue).. [Python] 리스트 거꾸로 뒤집기 1. reverse 메소드 사용test = [1, 2, 3, 4, 5]test.reverse()print(test)# [5, 4, 3, 2, 1] 2. reversed 메소드 사용test = [1, 2, 3, 4, 5]print(list(reversed(test)))# [5, 4, 3, 2, 1] list에 적합한 메소드가 아니다. 따라서 사용하는거 비추함 [Python] 스택 스택은 가장 나중에 들어온 자료가 가장 먼저 빠져나가는 LIFO(Last-In-First-Out) 자료구조이다. 아래의 그림을 참고하면 이해하기 편하다. 그렇다면 파이썬에서는 스택을 어떻게 구현할까? 사실 따로 구현할 필요가 없다. 우리가 평소에 사용하는 list가 그 자체로 스택으로 쓰일 수 있기 때문이다.사용 방법을 알아보자. Stack - init# 빈 스택으로 초기화stack = [] Stack - push# 스택에 원소 추가stack = [1, 2, 3, 4, 5]stack.append(6)# [1, 2, 3, 4, 5, 6] Stack - pop# 스택의 원소 제거stack = [1, 2, 3, 4, 5]top = stack.pop()print(top)print(stack)# 3# [1, .. [Python] 최대공약수, 최소공배수 구하기 1. import mathmath 라이브러리를 불러올 수 있다면 이게 제일 간단한 방법이다. import mathprint(math.gcd(12, 32))print(math.gcd(11, 33, 55))print(math.lcm(7, 13))print(math.lcm(6, 9, 12)) 41191362. 유클리드 호제법 유클리드 호제법이란 두 정수 a와 b에서 a를 b로 나눈 나머지가 r일 때, a와 b의 최대공약수는 b와 r의 최대공약수와 같다는 알고리즘이다. 이를 코드로 나타내보면 아래와 같다. def gcd(a, b): return b if a % b == 0 else gcd(b, a % b)def lcm(a, b): return int(a * b / gcd(a, b))def gcdlc.. [Python] zip함수(두 개의 리스트를 묶어주기) zip은 두 개의 리스트를 서로 묶어줄 때 사용한다. 다음의 예시를 살펴보자. name = ['gum', 'snack']price = [500, 1000]z = zip(name, price)print(list(z)) [('merona', 500), ('gugucon', 1000)] output 값을 보면 알겠지만, name과 price의 0번 원소는 0번 원소끼리, 1번 원소는 1번 원소끼리 묶어주고 zip 타입의 객체를 우리가 알고 있는 리스트 타입으로 반환하는 모습을 살펴볼 수 있다. 그렇다면 어떤 상황에 사용하는 것이 좋을까? 다음과 같이 for문과 함께 활용해서 사용할 수 있다.name = ['gum', 'snack']price = [500, 1000]for n, p in zip(name, pri.. [Python] format 함수(인자 전달) format의 역할은 간단히 나타내면 직관적으로 바로 이해가 가능하다.format에 전달하는 인자의 인덱스를 문자열 표현에 포함시키는 것이다. 지금부터는 자세한 예시를 살펴보자. 10진수, 8진수, 16진수 출력[In]num = 256print("===num===")print("10진수:",format(num,'d'))print("8진수:",format(num,'o'))print("16진수:",format(num,'x')) [Out]===num===10진수: 2568진수: 40016진수: 100 인자 전달[In]a=5b=3print("a:{0} b:{1}".format(a,b))print("{0}+{1}={1}+{0}={2}".format(a,b,a+b)) [Out]===num===a:5 b:35+3.. [Python] 코딩테스트 대비에 반드시 필요한 라이브러리 정리 내장함수파이썬에는 별도의 import 명령어 없이 바로 사용할 수 있는 내장 함수가 존재한다. 내장 함수는 print(), input()과 같은 기본 입출력 기능부터 sorted()와 같은 정렬 기능을 포함하고 있다. 우리가 코딩테스트를 준비하기 위해 반드시 알아야 할 함수 몇 개를 알아보자. ㅇㅅㅇ sum()sum() 함수는 iterable 객체가 입력으로 주어졌을 때, 모든 원소의 합을 반환한다. 다음의 예시를 확인해보자. # 입력result = sum([1, 2, 3, 4, 5])print(result)# 출력15 min()min() 함수는 파라미터가 2개 이상 들어왔을 때 가장 작은 값을 반환한다. 다음의 예시를 확인해보자. # 입력result = min([6, 3, 7, 2, 4])print(r.. [Python] 리스트 안의 특정 원소를 전부 삭제하는 법 (remove) 리스트 안의 특정 원소를 삭제할 때 우리는 보통 remove 함수를 사용한다. remove 함수의 사용법에 대해 알아보자. 기본 문법은 다음과 같다. 변수명.remove(특정 값) 하지만 이 방법으로는 특정 값을 갖는 원소를 제거하긴 하는데, 값을 가진 원소가 여러 개면 하나만 제거한다. 다음의 예시와 같이 말이다. # 입력a = [1, 2, 3, 4, 5, 5, 5]a.remove(5)print(a)# 출력[1, 2, 3, 4, 5, 5] 5는 세 개나 있지만, 한 개만 지워진 모습을 볼 수 있다. 그렇다면, 5를 전부 지우기 위해서는 어떻게 해야 할까? 다음의 코드를 보자. # 입력a = [1, 2, 3, 4, 5, 5, 5]remove_set = {5}result = [i for i in a if.. 이전 1 2 3 4 다음 목록 더보기