본문 바로가기

전체 글70

백준 2164 큐, deque 연습 백준 2164 문제 풀이https://www.acmicpc.net/problem/2164풀이전형적인 큐 연습 문제로,제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮기는 방안을deque 객체의 rotate() 메서드를 사용하여 구현하거나,popleft()와 append()를 사용하여 구현하느냐는 선택의 문제● deque 객체의 rotate() 메서드 사용 코드#rotate() 사용import sysfrom collections import dequeN = int(sys.stdin.readline().rstrip())lst = deque([i+1 for i in range(N)])#print(lst)while True: if len(lst) == 1: break .. 2024. 5. 31.
파이썬 스택, 큐 deque (with 백준 18258) 스택 파이썬에서 스택은 리스트 객체를 사용한다.☞ 리스트 (배열)에 대한 내용은 이전 글 참고 파이썬 리스트 배열 list (with 백준 5597, 10250)파이썬의 리스트는 대괄호 사이에 쉼표로 구분된 값들로 표현한다.일차원 리스트A = ['a', 'b', 'c', 'd', 'e']B = ['가', '나', '다', '라', '마']print(A) # ['a', 'b', 'c', 'd', 'e']print(B) # ['가', '나', '다', '라', '마yuneenelife.tistory.com 스택 vs 큐상황에 맞게 스택, 큐 방식을 선택하여 사용한다.스택은 선입후출/후입선출 (LIFO : Last in First Out) 방식으로 나중에 들어간 놈이 먼저 나오는 방식큐는 선입선출(FIFO :.. 2024. 5. 30.
파이썬 중복제거 set 집합함수 (with 백준 2776) set() 함수 사용 중복제거를 하고 싶을 때, set() 함수를 사용한다.set(i) 함수는 집합으로 만들어주는 함수이며 i의 값은 iterable 형식을 집합 객체로 반환해 준다.이때 iterable 형식은 딕셔너리의 키나 집합의 멤버로 사용할 수 있는 객체여야 한다.#list 를 set() 로 변환하면 집합으로 반환하면서 중복제거한다.a = [2,1,3,4,5,5,6,7,3]print(a) # [2, 1, 3, 4, 5, 5, 6, 7, 3]print(len(a)) # 9print(set(a)) # {1, 2, 3, 4, 5, 6, 7}print(len(set(a))) # 7b = ['lee', 'yun', 'park', 'yun', 'bang', 'lee']print(b) # ['lee', 'yu.. 2024. 5. 29.
파이썬 Counter (with 백준 10815, 10816) Counter() 객체 편리하고 빠르게 개수를 세도록 지원하는 계수기 도구 제공collections 모듈의 Counter() 객체 선언하여 사용한다. ex) from collections import Counterfrom collections import Countercnt = Counter()for word in ['yun', 'Lee', 'yun', 'bang', 'Lee', 'Lee']: cnt[word] += 1print(cnt) # Counter({'Lee': 3, 'yun': 2, 'bang': 1})words = ['yun', 'Lee', 'yun', 'bang', 'Lee', 'Lee']cnt1 = Counter(words)print(cnt1) # Counter({'Lee': 3, '.. 2024. 5. 28.
파이썬 람다 함수 lambda (with 백준 1181) lambda (람다) 표현식 lambda 키워드로 함수로 사용할 수 있으며 일반적인 함수 정의의 편의 문법임.lambda a, b: a+b 와 같이 함수 객체가 있는 곳이면 어디나 lambda 함수가 사용될 수 있다. 제약 문법적으로 하나의 표현식으로 제한됨.함수명이 없고 단발성으로 사용됨.● 람다 (lambda) 함수 예시#list a에 0 ~ 4 의 거듭제곱 값 저장한다.a = []for i in range(5): a.append(i**2)print(a) # [0, 1, 4, 9, 16]#list a에 0 ~ 4 의 거듭제곱 값 lambda 함수로 저장한다.a = list(map(lambda i: i**2, range(5)))print(a) # [0, 1, 4, 9, 16] ● 정렬 예시a = .. 2024. 5. 27.
파이썬 정렬 sort, sorted (with 백준 2750, 5597, 1181) 파이썬 정렬은 sort(), sorted()를 사용한다. 내장함수 sort()이 메서드는 리스트 내 항목 간의 비교만 사용하여 정렬한다.정렬 후 리스트는 수정된 상태로 유지된다.반환값이 없다.리스트 타입만 사용 가능A = ['a', 'd', 'e', 'c', 'b']#sort() 는 반환값이 없다.print(A.sort()) # NoneA = ['a', 'd', 'e', 'c', 'b']A.sort()print(A) # ['a', 'b', 'c', 'd', 'e']B = ['가', '다', '바','나']B.sort()print(B) # ['가', '나', '다', '바']C = [3,2,1,11,4]C.sort()print(C) # [1, 2, 3, 4, 11]D = ['3','2','1','11','.. 2024. 5. 24.
파이썬 for while 조건문 (with 백준 2446, 2522) 파이썬 for , while 조건문은 아래와 같이 사용한다.for (조건문) :조건문 사용 예시#숫자인 경우N = 5for i in N: #문자열일때 사용 print(i) # TypeError: 'int' object is not iterablefor i in range(N): print(i, end=" ") # 0 1 2 3 4for i in range(0, N): print(i, end=" ") # 0 1 2 3 4#문자인 경우M = '일이삼사오'for i in M: print(i, end=" ") # 일 이 삼 사 오for i in range(M): #숫자일때 사용 print(i, end=" ") # TypeError: 'str' object cannot be interp.. 2024. 5. 23.
파이썬 리스트 배열의 얕은 복사(copy), 깊은 복사(deepcopy) 차이점 파이썬의 리스트를 복사하는 방법은 얕은 복사(copy)와 깊은 복사(deepcopy)가 있다.여기서 주의할 점이 있는데, 리스트 자체를 대입하게 되면 내가 의도한 대로 복사가 되지 않는다.내가 의도한 대로 배열을 복사를 하기 위해서는 얕은 복사와 깊은 복사 방식을 사용해야 한다.리스트 대입 a = [1,2,3] 인 리스트를 b = a로 한 경우, a와 b는 다른 리스트가 아님# 리스트 대입하는 경우a = [1,2,3]b = ab.append(4)#a 와 b 모두 6 추가됨.print(a) # [1, 2, 3, 4]print(b) # [1, 2, 3, 4] 리스트를 복사하기 위해서는 copy() 를 사용하거나 deepcopy()를 사용해야 한다.이 둘은 얕은 복사(shallow) 와 깊은 복사(deep)의.. 2024. 5. 22.
파이썬 리스트 배열 list (with 백준 5597, 10250) 파이썬의 리스트는 대괄호 사이에 쉼표로 구분된 값들로 표현한다.일차원 리스트A = ['a', 'b', 'c', 'd', 'e']B = ['가', '나', '다', '라', '마']print(A) # ['a', 'b', 'c', 'd', 'e']print(B) # ['가', '나', '다', '라', '마']이차원 리스트A = [['a','b'], ['c','d'],['e','f']]print(A) # [['a', 'b'], ['c', 'd'], ['e', 'f']]print(A[0]) # ['a', 'b']print(A[0][0]) # a 리스트 값 저장append() 내장함수 사용 : 마지막 인덱스에 추가A = []# 리스트 값 추가A.append("a")A.append("b")A.append(".. 2024. 5. 22.
파이썬 if문 조건 여러개 다중 처리 배열 비교 (with 백준 1330) 파이썬 if 문 다중처리는 아래와 같다.문법if (조건문 기재):elif (조건문 기재):else:x = int(input("숫자를 입력하세요: "))if x 1 and x 배열(list) 비교를 하는 경우, 배열의 원소 값을 비교하여 반환한다.x = [1,2,3,4,5]y = [1,2,5,4,3]# list y가 더 큽니다.if x > y: print('list x가 더 큽니다.')elif x y: print('list x가 더 큽니다.')elif x  ▶ if 문 연습 백준 문제 풀이 https://www.acmicpc.net/problem/1330"""A가 B보다 큰 경우에는 '>'를 출력한다.A가 B보다 작은 경우에는 ' B): print(">")elif (A """ ▷ 파이썬.. 2024. 5. 21.