
📌 "파이썬 알고리즘 인터뷰" 문제 완전 정복 플랜 총 95개의 알고리즘 문제로 이루어져 있음. ➡ 모든 문제를 최소 3번씩 풀어서, 문제를 보면 바로 해결할 수 있도록 만들기! ➡ 코드 스니펫을 정리하고, 필요하면 업데이트하기! ✅ 기본 학습 플랜 (평소) ✔
리스트에 대해서 추가하는 것을 생각해보자..extend와 .append는 리스트를 추가하는 방식이다.이를 생각해보면
!!!python a_list = 3, 1, 4, 1, 5, 9

Python의 itertools 라이브러리는 조합과 순열을 비롯해 다양한 경우의 수를 다룰 수 있는 기능을 제공한다.여기에서는 combinations, permutations, product, combinations_with_replacement의 차이를 정리한다.순서
📌 예제 (양방향 변환)
dict.fromkeys(iterable, value=None)는 주어진 iterable의 요소를 키로 하는 딕셔너리를 생성하는 메서드.기본적으로 값은 None이지만, 다른 값으로 설정할 수도 있음.
코딩 테스트에서 자주 사용되는 문자열 처리 함수 중 strip()과 split()은 매우 유용합니다.특히 입력 값을 정리하거나 파싱할 때 필수적인 함수이므로, 이번 글에서 제대로 정리해 보겠습니다.strip() 함수는 문자열의 양 끝에서 불필요한 공백이나 특정 문자를
collections 모듈에는 효율적인 자료구조들이 많아서 코딩테스트에서 자주 쓰여!아래 기능들을 잘 익혀두면 문제 풀이 속도를 크게 줄일 수 있습니다.문자열 또는 리스트에서 빈도수를 쉽게 계산✅ 사용법:d = defaultdict(int)d'a' += 1print(d
파이썬 3.8부터 도입된 연산자로, 변수를 할당하면서 동시에 사용할 수 있는 표현식.일반적으로 :=은 루프 안에서 반복적으로 사용될 값을 한 번만 할당할 때 유용📌 s := s.split(" ")s를 공백 " " 기준으로 나눈 후, 바로 s 변수에 저장동시에 len(
.pop()은 리스트(list)와 딕셔너리(dict)에서 동작 방식이 다름.key가 존재하면 해당 값을 반환존재하지 않으면 두 번째 인자로 주어진 기본값을 반환dickey와 달리 KeyError를 발생시키지 않음.
str.find() 메서드는 문자열(string) 내에서 특정 부분 문자열(substring)의 첫 번째 등장 위치를 찾는 내장 함수입니다. 찾지 못하면 -1을 반환합니다.📌 기본 문법매개변수 설명substring: 찾고자 하는 문자열 (필수)start (선택): 검
가끔 min_number 나 max_number를 구할때 inf로 표시해야 할때 있다. 그럴때 사용하면 좋은 함수
✅ ord()문자를 유니코드(ASCII) 값으로 변환예제:✅ 동일한 키를 사용하면 XOR을 두 번 하면 원래 값으로 복원됨📌 실행 결과✅ 136. Single Number (Leetcode)"모든 숫자가 두 번씩 등장하는 배열에서, 한 번만 등장하는 숫자를 찾아라."
str.translate()는 문자열에서 특정 문자를 다른 문자로 치환하거나 제거하는 기능을 수행합니다.기본 문법table: 변환 규칙을 담고 있는 매핑 객체 (보통 str.maketrans()를 이용해 생성)tr.maketrans() str.translate()에서
Python 문자열에는 다양한 검사 메서드가 있으며, isalnum()과 isdigit()도 그중 하나입니다.isalnum() 메서드는 문자열이 알파벳(a-z, A-Z) 또는 숫자(0-9)로만 구성되어 있으면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
Python에서 dict.get() 메서드는 딕셔너리에서 키를 찾고, 키가 존재하면 해당 값을 반환하며, 존재하지 않으면 기본값(default)을 반환하는 방법.\-> dictionary 문제 풀때 정말 유용함.default_value (옵션): 키가 존재하지 않을
iterable 안의 모든 요소가 True이면 True를 반환하고, 하나라도 False이면 False를 반환하는 내장 함수.예제:Counter는 리스트의 각 원소 개수를 더 효율적으로 세는 dict 형태의 자료구조..count(num)는 리스트 전체를 한 번 순회하며
코딩테스트에서 자주 쓰는 itertools & collections 정리 ✅ from itertools (조합, 순열, 반복 패턴) 1. permutations - 순열 (순서 중요) 길이가 r인 모든 순열 생성 순서 중요 → (1,2)와 (2,1)은 다름 2.
zip()은 여러 개의 iterable(리스트, 튜플 등)을 묶어서 동시에 순회할 때 사용됨.출력각각 name, score에 매핑되어 동시에 순회 가능fillvalue='X'로 남은 값 채울 수 있음dict(zip(keys, values)) → 키-값 쌍으로 딕셔너리
.join()은 문자열 리스트를 하나의 문자열로 합칠 때 사용하는 메서드.출력\\n을 활용하면 여러 줄 문자열 생성 가능
https://leetcode.com/problems/maximum-subarray/description/
all()은 파이썬 내장 함수로, 반복 가능한(iterable) 객체의 모든 요소가 True인지 확인하는 함수야. all(iterable): iterable(리스트, 튜플 등)의 모든 요소가 True이면 True를 반환.하나라도 False이면 False를 반환.
Python의 set을 활용한 다양한 연산 방법
Python에서 .reverse()는 리스트(list)의 요소를 뒤집는 기능을 가진 메서드입니다. 하지만 몇 가지 중요한 특징이 있습니다.리스트 자체를 변경 (in-place).reverse()는 리스트의 순서를 뒤집지만 새로운 리스트를 반환하지 않고, 원본 리스트를
re.sub()는 문자열에서 특정 패턴을 찾아 다른 문자열로 변경하는 함수입니다.즉, 정규 표현식(Regex)을 이용한 문자열 치환(substitution) 기능을 합니다.🔹 pattern: 변경할 문자열을 찾기 위한 정규식 패턴🔹 replacement: patte
split()과 split(" ")의 차이점을 이해하려면 기본 동작 방식을 알아야 합니다.🔹 출력: 연속된 공백(스페이스, 탭, 개행문자 등)을 하나의 구분자로 처리 즉, " " (여러 개의 공백)도 하나처럼 인식 문자열의 앞뒤 공백도 자동 제거 🔹 출력
Counter.most_common(n)은 collections.Counter 객체에서 가장 많이 등장한 요소를 빈도순으로 정렬하여 반환하는 메서드입니다.🔹 iterable: Counter 객체를 만들 원본 데이터 (리스트, 문자열 등)🔹 n (선택 사항): 상위
리스트 nums 가 주어졌을때, nums::n이냐 nums::-n이냐는 상당히 헷깔린다. 그래서 잠깐 정리해본다!파이썬에서 nums\[::2]랑 nums\[::-2]는 슬라이싱인데, 방향이 다르다:처음부터 끝까지 2칸씩 건너뛰며 가져옴 ➤ 앞에서부터 짝수 인덱스 요
float("inf")랑 sys.maxsize 같은 거 일까?결론부터 말하면:sys.maxsize는 실제 수야. 엄청 큰 수긴 하지만 유한한 정수.float("inf")는 무한대 개념이야. 그냥 무한히 큼을 뜻하는 특수 float 값예를 들어:
a // b → 몫 (quotient)a % b → 나머지 (remainder)divmod(a, b)는 이 둘을 한 번에 튜플로 리턴이건 덧셈 중 자릿수 계산할 때 정말 자주 쓰이는 패턴val → 현재 자릿수에 들어갈 값 (1의 자리)carry → 다음 자릿수로 넘겨줄
핵심은 "None"과 "빈 리스트(\[])"는 전혀 다르다는 것
if char not in table→ table은 딕셔너리이기 때문에 char가 닫는 괄호인지(즉, key에 해당하는지) 확인하는 조건문이다.stack.pop()→ pop()을 호출하면 스택(리스트)의 가장 마지막 요소를 꺼내면서 동시에 제거한다.즉, pop()된 값
좋아! heapq의 heappush, heappop이 뭐고, 이게 우선순위 큐(Priority Queue)에서 어떤 역할을 하는지, 그리고 이게 스택(stack)이나 큐(queue) 같은 거랑 무슨 차이가 있는지 깔끔하게 설명heapq는 파이썬 기본 라이브러리로, 최소
명사: 잘게 썬 음식, 특히 고기 (예: corned beef hash)동사: 잘게 썰다, 마구 뒤섞다또는 문제 등을 정리하다 (hash out a problem)프랑스어 "hacher" → to chop (썰다, 자르다)에서 유래 라틴어 "hassia" (자르기,
Use r'...' to write regex in Python so that backslashes like \\s are treated literally, not as Python escape characters. ✅
The asterisk (\*) in Python has several powerful uses, depending on the context. Here's a summary based on the content in your image:You can use \* to
그래프에서 한 정점(시작점)으로부터 다른 모든 정점까지의 최단 거리를 구하는 알고리즘단, 간선의 가중치는 음수가 없어야 함!만든 사람: 에츠허르 다익스트라(Edsger W. Dijkstra) 네덜란드 출신의 전설적인 컴퓨터 과학자1956년에 고안함! (교통망에서 최단
heapq는 최소 힙(min-heap) 기반의 우선순위 큐 구현.즉, 가장 작은 값이 가장 먼저 나옴.정렬은 안 되어 있어도, 항상 heap\[0]이 최소값.heap에 item을 힙 조건 유지하면서 삽입이건 정렬된 게 아니라, "부모 노드는 자식보다 작다" 는 조건만
아래는 Python의 typing 모듈 공식 문서에서 꼭 알아야 하는 핵심 개념 위주로 정리한 요약x: int, y: str: 인자 타입\-> bool: 반환 타입UserId는 int와 런타임 동작은 같지만, 정적 타입 검사기에서 다른 타입으로 취급되어 논리 오류 방
list.index() 메서드는 리스트 안에서 특정 값이 처음 나타나는 위치(인덱스)를 반환하는 함수입니다.value: 찾고자 하는 값start: 탐색을 시작할 인덱스 (생략 가능)stop: 탐색을 끝낼 인덱스 (생략 가능)
파이썬의 정규표현식(re 모듈)에서 자주 쓰는.group, .search, .compile, re.DOTALL 에 대해서 알아봅시다. 코드구현 때 자주 언급되니 미리 알아두면 좋습니다.정규표현식 패턴을 미리 컴파일해서, 여러 번 쓸 때 효율적으로 사용할 수 있게 해주
1. sorted() 내장 함수(built-in function) 어떤 iterable(리스트, 튜플, 문자열, 집합, 딕셔너리 등) 도 받을 수 있음 새로운 리스트를 반환 (원본은 건드리지 않음) 2. .sort() 리스트(list)의 메서드 리스트에서만 사용 가능 원본 리스트 자체를 정렬하고, 반환값은 None 3. 공통점 둘 다 정렬 기준을...
문자열 안에서 특수기능을 하는 문자들./ : 실수 나눗셈// : 몫% : 나머지divmod(a, b) → (몫, 나머지)를 한 번에 반환리스트, 문자열, range 등 반복 가능한 객체 순회.→ 0 1 2 3 4조건 분기 처리.문자열끼리 + → 이어 붙임숫자 + 문자열
좋다. 아래는 각 문제별 코드 → 해설 순서로 정리한 구조적 노트다.불필요한 말 없이, 실행 가능한 코드와 핵심 원리를 단계별로 명확히 설명한다.https://www.acmicpc.net/problem/10699해설timezone(timedelta(hours=
1.24시 https://www.acmicpc.net/problem/1408 ✅ 최종 코드 ✅ 전체 로직 요약 이 문제는 현재 시각과 임무 시작 시각이 주어졌을 때, 임무 시작까지 남은 시간 차이를 계산하는 문제입니다. ① 시간을 초 단위로 변환하기 시(h),
1. stack https://www.acmicpc.net/problem/10828 stack은 기본적인 자료구조 형태이다. 스택은 LIFO (Last In, First Out) 자료구조로, 마지막에 들어간 원소가 가장 먼저 나오는 구조를 말합니다. ⚠️ 실수한 부
1. 지능형 기차2 https://www.acmicpc.net/problem/2460 이 코드는 다음과 같이 고쳐쓸 수 있다. 배운점 1) dict.get(key, default) 정확한 활용 의도: 딕셔너리에서 key가 없을 때도 에러 없이 값을 읽거나, 부재
8단계별에 있는 수학을 풀어봅시다: https://www.acmicpc.net/step 1.벌집 https://www.acmicpc.net/problem/2292 배운점 🐝 1. 문제 요약 중앙의 1번 방에서 시작해 육각형 형태로 방이 확장되는 구조이다. 1
1. 단어뒤집기 https://www.acmicpc.net/problem/17413 🧩 단어 뒤집기 (BOJ 17413)에서 배운 점 1️⃣ inside_tag로 태그 내부/외부 구분 `` → 태그 끝. inside_tag = True/False 로 현재 위치가