Coding Test 8

8. Product of Array Except Self and Longest Consecutive Sequence

코딩테스트를 준비하는 과정에서 자주 마주치는 대표적인 배열 문제 두 가지를 다루고자 한다. 각각의 문제를 어떤 아이디어로 접근해야 하는지, 코드를 외우기보다는 어떤 흐름으로 이해하고 적용해야 하는지를 중심으로 정리했다.🔹 문제 1: Product of Array Except Self🧠 문제 설명정수 배열 nums가 주어졌을 때,answer[i]는 nums[i]를 제외한 나머지 모든 값의 곱이 되도록 하라.단, O(n) 시간 복잡도, 나눗셈 사용 금지 조건이 있다.🔍 핵심 아이디어현재 인덱스를 제외한 곱을 만들기 위해 좌측 곱 (prefix) 과 우측 곱 (suffix) 을 따로 계산한다.최종적으로 answer[i] = left[i] * right[i]✅ 코드class Solution: def ..

Coding Test 2025.06.16

코테에서 자주 쓰이는 Python 코드/패턴 모음

📦 자주 쓰이는 Python 코드/패턴 모음 🔢 1. Counter – 등장 횟수 세기from collections import Countercount = Counter(nums) 주로: 빈도 수 기반 정렬, top-k 문제예시: count.most_common(1) → 가장 많이 나온 항목 🔁 2. defaultdict – 키 초기화 없이 값 추가from collections import defaultdictd = defaultdict(int)d[key] += 1 주로: dict에 리스트, 숫자 누적할 때예: defaultdict(list) → 키마다 리스트 자동 생성 🥇 3. heapq – 최소/최대 힙import heapqheapq.heappush(heap, val)heapq.heapp..

Coding Test 2025.06.13

6. Top K Frequent Elements

📊 [Python 문제풀이] Top K Frequent Elements — 정렬 vs heapq 완벽 비교 이번 글에서는 LeetCode의 인기 문제 중 하나인“Top K Frequent Elements (가장 많이 등장한 K개의 숫자 구하기)” 문제를두 가지 방식으로 풀이하고 비교한다: dict + sorted()를 활용한 직관적 풀이heapq를 활용한 고급 최적화 풀이 각 방식의 코드, 이론, 시간복잡도, 상황별 장단점까지 모두 정리한다. 🧠 문제 설명 **정수 배열 nums와 정수 k**가 주어졌을 때,가장 자주 등장한 숫자 k개를 반환하라.반환 순서는 상관없다. 📥 입력 예시nums = [1,1,1,2,2,3]k = 2 📤 출력 예시[1, 2]→ 1은 3번, 2는 2번 등장했기 때문에 ..

Coding Test 2025.06.13

5. Group Anagrams

🧩 [Python 문제풀이] Group Anagrams - 딕셔너리 + 리스트 + append() 완벽 이해하기 이번 글에서는 LeetCode의 유명한 문제 중 하나인 “Group Anagrams” 를 파이썬으로 해결하면서,많은 사람들이 헷갈려 하는 개념인 dict + list + .append() 구조를 함께 정리해본다 📌 문제 설명 (LeetCode 49 - Group Anagrams) 문자열 배열 strs가 주어졌을 때, 아나그램(anagram)끼리 묶어서 그룹으로 반환하라. ✅ 예시Input: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]Output: [["eat","tea","ate"],["tan","nat"],["bat"]] "eat", "te..

Coding Test 2025.06.12

3. Valid Anagram

🔤 [Python] 아나그램(Anagram) 판별하기 – dict.get() vs collections.Counter 문제 (Problem):Given two strings s and t, return True if t is an anagram of s, and False otherwise. 조건: 문자열 길이: 1 문자열은 소문자 영문으로만 구성⚠️ Follow-up: If Unicode characters are allowed? 🧠 아나그램(Anagram)이란? 두 문자열이 같은 문자로 구성되어 있으며, 각 문자의 개수도 동일한 경우. 예:s = "anagram"t = "nagaram"→ Trues = "rat"t = "car"→ False ✅ 방법 1: collections.Counter 사..

Coding Test 2025.06.11

2. Best Time to Buy and Sell Stock

📈 [Python] Best Time to Buy and Sell Stock — 최대 이익 문제 풀이 (LeetCode Easy) Problem: You are given an array prices where prices[i] is the price of a given stock on the i-th day. You must choose a day to buy and a future day to sell to maximize your profit. 🧠 문제 설명 (Problem Description) 정수 배열 prices가 주어질 때, 한 번의 **매수(buy)**와 **매도(sell)**를 통해 낼 수 있는 **최대 이익(max profit)**을 구하라. 단, 매수는 **매도 이전(day i..

Coding Test 2025.06.11

피라미드 만들기

문뜩 기초가 부족하다는 느낌을 받고 부랴부랴 예전 자바스크립트 문제를 꺼내 풀었다. 내게는 너무 어려웠던 자바스크립트를 이용하여 피라미드를 만드는 문제.. 천천히 다시한번 풀어보자 function pyramid(num) { } pyramid라는 함수에 num을 받고 해당하는 숫자만큼 피라미드를 만들어 보자. 예를들어 num = 3 일 경우에는, * *** ***** 과 같은 모양의 피라미드가 나와야 한다. 위의 문제를 풀기 위해서는 for문으로 접근해야한다. function pyramid(num) { var result = "" for(var i=1; i

Coding Test 2023.04.13