CS (22) 썸네일형 리스트형 [TIL] 20240312 20일차 Queue - 선입선출 - 데이터를 쌓는 과정을 enqueue, 데이터를 빼는 과정을 dequeue 라고 한다. Deque - 양방향에서 자료를 쌓고 뺄 수 있다. 우선순위큐 (Priority Queue) - 우선순위가 가장 높은 자료를 먼저 뺄 수 있는 큐이다. [TIL] 20240311 19일차 정렬 알고리즘 버블 정렬 삽입 정렬 선택 정렬 병합 정렬 퀵 정렬 시간 복잡도 O(n²) O(n²) O(n²) O(nlogn) O(nlogn) 공간 복잡도 O(n) O(n) O(n) O(nlogn) O(nlogn) 버블 정렬, 삽입 정렬, 선택 정렬은 반복문을 2번 돌려서 정렬을 수행한다. -> 시간 복잡도로 제곱 형태가 나오게 된다. 리스트 안에서 요소들의 교환만 일어나기 때문에, 공간 복잡도는 n으로 표현된다. 반면 병합 정렬, 퀵 정렬은 반으로 쪼개거나 피벗을 두고 쪼개서 정렬하고 다시 합치는 과정을 거치기 때문에 쪼개는 과정이 log로, 정렬 과정이 n으로 표현된다. 리스트를 분해했다가 다시 병합하기 때문에 공간 복잡도에 log가 추가로 붙게 된다. 구현 코드 # [버블 정렬] def bubble.. [TIL] 20240308 18일차 SWEA 5215. 햄버거 다이어트 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWT-lPB6dHUDFAVT& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 시행착오 코드 1 더보기 def cases(combination, calories, limit): global final_cases if limit == 0 or limit < min(calories): final_cases.append(' '.join(combination)) return for idx, num in enumerate(calories): if .. [TIL] 20240307 17일차 프로그래머스 분수의 덧셈 https://school.programmers.co.kr/learn/courses/30/lessons/120808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이를 위해서 - 두 분수의 분모의 최소공배수 - 두 분수를 더한 후 분자, 분모의 1보다 큰 최대공약수로 나눔(약분) 과정이 필요하여 최소공배수, 최대공약수를 구하는 함수를 작성했다. def lcm(num1, num2): min_val = min(num1, num2) max_val = max(num1, num2) for i in range(1, max_val + .. [TIL] 20240306 16일차 백준 문제 2231번: 분해합 https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 시행착오 코드 1 https://www.acmicpc.net/source/74489955 로그인 www.acmicpc.net 더보기 val = input() digit = len(val) val_raw = int(val) min_sum = val_raw for i in range(1, digit * 9): tmp = val_raw - i .. [TIL] 20240305 15일차 백준 문제 2503번: 숫자 야구 https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 시행착오 코드 1: 더보기 def append_case(item, target): if item not in target: for idx, elem in enumerate(target): if not elem[0] and elem[1:] == item[1:]: target[idx] = item elif not elem[1] and elem[0] == item[0].. 이전 1 2 3 다음