반례를 못 찾겠다면, 만들어라
"맞왜틀"이라는 단어가 존재하는 건, 그만큼 많은 사람이 그 고통을 겪고 있다는 증거다. 제출 버튼 누르고 70%에서 딱 멈추는 그 순간 — 코드를 위에서 아래로 열 번째 읽고 있는 자신을 발견한다. #"생각해보기"는 왜 한계가 있나 반례를 찾으라고 하면 대부분 이렇게 한다. "음... 빈 배열? 0? 음수?&q
코딩테스트 트렌드, 기업별 출제 패턴, 알고리즘 해설 — 취준생과 이직러를 위한 실전 가이드.
"맞왜틀"이라는 단어가 존재하는 건, 그만큼 많은 사람이 그 고통을 겪고 있다는 증거다. 제출 버튼 누르고 70%에서 딱 멈추는 그 순간 — 코드를 위에서 아래로 열 번째 읽고 있는 자신을 발견한다. #"생각해보기"는 왜 한계가 있나 반례를 찾으라고 하면 대부분 이렇게 한다. "음... 빈 배열? 0? 음수?&q
많은 사람이 위상 정렬 알고리즘 자체는 안다. BFS 기반 Kahn's 알고리즘이든 DFS 후처리든, 구현은 외우면 된다. 진짜 문제는 "이 문제가 위상 정렬이네"를 알아채는 순간이다. 그 감각이 없으면 구현력이 아무리 좋아도 30분을 날린다. #어디서 튀어나오나 코테에서 위상 정렬은 대놓고 "순서를 구하라"고 나
"이거 그래프 문제인데 BFS로는 시간 초과 나요" — 스터디에서 제일 자주 듣는 질문 중 하나다. 네트워크 연결, 집합 분류, 사이클 판별. 이런 키워드가 보이면 BFS/DFS보다 먼저 꺼내야 할 자료구조가 있다. #유니온 파인드, 대체 언제 쓰는 건데 유니온 파인드(Union-Find), 또는 서로소 집합(Disjoint Set Uni
부분 배열 문제를 보면 이중 for문부터 손이 간다. 모든 시작점에서 모든 끝점까지 돌리면 O(n²), 당연히 시간 초과. 그런데 "연속된 부분 배열"이라는 조건이 붙어 있다면, 오른쪽을 한 칸 늘렸을 때의 변화를 왼쪽을 줄여서 상쇄할 수 있는지가 핵심이다. 이게 슬라이딩 윈도우의 본질이고, 결국 왼쪽 포인터를 언제 움직이느냐에 모든 게
"이 배열에서 각 원소의 오른쪽에 있는 첫 번째 더 큰 수를 구하라." 이 문제를 처음 보면 대부분 이중 for문을 떠올린다. 돌아간다. 맞다. 근데 N이 100만이면? O(n²)은 TLE 직행이다. 여기서 모노토닉 스택이 등장한다. #모노토닉 스택이 뭔데 스택인데, 원소를 넣을 때 특정 순서(오름차순 또는 내림차순)를 유지하는 스택이다.
"최솟값의 최댓값을 구하시오." 코테 문제를 읽다가 이 문장을 만나면 멍해지는 사람이 많다. 최소인데 최대? 뭔 소리지? 근데 이 표현, 한번만 감 잡으면 오히려 반가워진다. 파라메트릭 서치 문제의 전형적인 시그널이거든. #이분 탐색인데 배열이 없다? 이분 탐색 하면 보통 "정렬된 배열에서 특정 값 찾기"를 떠올린다. l
"다 맞았는데 왜 틀려요?" — 탐욕법 문제에서 이 말 한 번이라도 해봤으면 손. 코테 단골 유형인 greedy. 쉬운 것 같으면서 함정이 깊다. "이거 탐욕적 접근 아닌가?" 싶은 문제에서 점화식을 써야 하는 경우가 많고, 반대로 DP로 풀다가 시간 초과 나는 문제가 탐욕법으로 깔끔하게 풀리기도 한다. 오늘은 이 경계선
#삼성 시뮬레이션, 왜 맨날 한 끗 차이로 틀릴까 알고리즘은 아는데 삼성 시뮬레이션만 만나면 자꾸 틀린다. 8/10 맞고 나머지 2개에서 막힌다. 이거 알고리즘 실력 문제가 아니다. 코드 구조 문제다. 삼성 SW 역량테스트 기출을 수십 개 분석해보면 패턴이 보인다. 시뮬레이션 문제가 요구하는 건 BFS/DFS 같은 고급 알고리즘이 아니라, 복잡한 조건을 빠
"AI 도구 사용 가능" — 올해 코딩 면접 공고에 이 문구가 슬슬 붙기 시작했다. CoderPad 기준으로 기술 면접의 20~30%가 이미 AI 도구를 허용하고 있고, 35,000건 넘는 AI 활용 면접이 진행됐다. "와, 이제 GPT 켜고 풀면 되겠네?" 이 생각부터 위험하다. #AI 허용 면접에서 떨어지는 사람의 공