본문 바로가기
반응형

코딩테스트31

[코딩 테스트] 28일차: 실전 모의고사 - 제한 시간 내 문제 풀기 2 제한 시간 내 문제 풀기 2이번 글에서는 제한 시간 내에 문제를 해결하는 연습을 계속합니다. 다양한 유형의 문제를 통해 실전 감각을 익혀보세요. 아래 예제 문제들을 제한 시간 내에 풀어보세요.문제 1: 세 수의 합 (Three Sum)주어진 배열에서 세 수의 합이 0이 되는 모든 고유한 조합을 찾으세요.예제입력: [-1, 0, 1, 2, -1, -4]출력: [[-1, 0, 1], [-1, -1, 2]]JavaScriptfunction threeSum(nums) { nums.sort((a, b) => a - b); const result = []; for (let i = 0; i 0 && nums[i] === nums[i - 1]) continue; let left = 0, right = nu.. 2024. 9. 28.
[코딩 테스트] 25일차: 실전 모의고사 - 모의 면접과 코드 리뷰 모의 면접과 코드 리뷰코딩 테스트뿐만 아니라 실제 면접 상황에서의 코드 리뷰와 피드백 받기 역시 중요합니다. 이번 글에서는 모의 면접과 코드 리뷰를 통해 문제 해결 능력을 향상시키고, 실제 면접에서의 대응 능력을 키우겠습니다.1. 모의 면접 준비모의 면접을 통해 실제 면접 상황에서의 긴장감을 줄이고, 자신감을 향상시킬 수 있습니다.면접 환경 조성: 실제 면접과 유사한 환경을 조성합니다.질문 리스트 준비: 자주 묻는 코딩 문제와 기술 질문 리스트를 준비합니다.면접관 역할: 친구나 동료에게 면접관 역할을 맡겨 실제 면접 상황을 연출합니다.2. 코드 리뷰와 피드백코드 리뷰는 작성한 코드를 다른 사람에게 검토받아, 개선할 점을 찾고 더 나은 코드를 작성하는 데 도움을 줍니다.코드 공유: 작성한 코드를 공유하고,.. 2024. 9. 25.
[코딩 테스트] 24일차: 실전 모의고사 - 제한 시간 내 문제 풀기 실전 모의고사코딩 테스트를 잘 준비하기 위해서는 실제 코딩 테스트 환경과 유사한 조건에서 문제를 풀어보는 것이 중요합니다. 이번 글에서는 제한 시간 내에 문제를 해결하는 방법을 연습합니다. 아래 예제 문제들을 제한 시간 내에 풀어보세요.문제 1: 두 수의 합주어진 배열에서 두 수를 더해 특정 숫자가 되는 두 수의 인덱스를 찾으세요.JavaScriptfunction twoSum(nums, target) { const map = new Map(); for (let i = 0; i Pythondef two_sum(nums, target): num_map = {} for i, num in enumerate(nums): complement = target - num if c.. 2024. 9. 24.
[코딩 테스트] 23일차: 문제 풀이 전략과 팁 문제 풀이 전략과 팁이번 글에서는 코딩 테스트에서 문제를 효과적으로 해결하기 위한 전략과 팁을 다루겠습니다. 문제 이해와 분석, 효율적인 풀이 전략, 디버깅과 최적화, 연습과 복습 방법에 대해 알아보겠습니다.1. 문제 이해와 분석문제를 해결하기 위해서는 먼저 문제를 정확히 이해하고 분석하는 것이 중요합니다. 다음은 문제를 이해하고 분석하는 데 도움이 되는 단계들입니다.문제 읽기: 문제를 꼼꼼히 읽고 요구사항을 파악합니다.입력과 출력 확인: 입력과 출력 형식을 확인합니다.예제 이해: 제공된 예제들을 이해하고, 어떻게 작동하는지 파악합니다.제약 조건 확인: 문제의 제약 조건을 확인하여, 효율적인 알고리즘을 선택하는 데 참고합니다.2. 효율적인 풀이 전략효율적인 문제 해결을 위해 다음과 같은 전략을 사용할 수.. 2024. 9. 23.
[코딩 테스트] 22일차: 수학 문제 수학 문제수학 문제는 알고리즘 문제에서 자주 출제되며, 수학적 사고를 요구합니다. 이번 글에서는 소수 찾기, 최대 공약수와 최소 공배수, 수열 문제에 대해 알아보겠습니다.소수 찾기 (Prime Number)소수는 1과 자기 자신 외에 약수가 없는 자연수입니다. 소수 찾기 알고리즘으로는 에라토스테네스의 체가 자주 사용됩니다.예제: 소수 찾기 구현 (에라토스테네스의 체)JavaScriptfunction sieveOfEratosthenes(n) { const primes = Array(n + 1).fill(true); primes[0] = primes[1] = false; for (let i = 2; i { if (prime) acc.push(index); return acc; }, []).. 2024. 9. 22.
[코딩 테스트] 21일차: 그리디 알고리즘 문제 그리디 알고리즘 문제이번 글에서는 그리디 알고리즘을 이용한 문제 해결 방법에 대해 다뤄보겠습니다. 주로 거스름돈 문제와 활동 선택 문제를 예제로 사용하여 그리디 알고리즘의 적용 방법을 이해하겠습니다.거스름돈 문제거스름돈 문제는 가장 적은 수의 동전으로 거스름돈을 주는 방법을 찾는 문제입니다. 그리디 알고리즘을 이용하여 가장 큰 단위의 동전부터 거슬러주면 됩니다. 예제: 거스름돈 문제 구현JavaScriptfunction minCoins(coins, amount) { coins.sort((a, b) => b - a); let count = 0; for (let coin of coins) { while (amount >= coin) { amount -= coin; count++;.. 2024. 9. 21.
[코딩 테스트] 20일차: 동적 프로그래밍 동적 프로그래밍 (Dynamic Programming)동적 프로그래밍은 복잡한 문제를 더 작은 부분 문제로 나누어 해결하는 방법입니다. 부분 문제의 해결 결과를 저장하여 동일한 부분 문제를 다시 계산하지 않도록 합니다. 동적 프로그래밍은 주로 최적화 문제에 사용되며, 메모이제이션(Memoization)과 타뷸레이션(Tabulatioon) 두 가지 방법으로 구현할 수 있습니다.동적 프로그래밍의 주요 개념부분 문제(Subproblem): 원래 문제를 구성하는 더 작은 문제최적 부분 구조(Optimal Substructure): 부분 문제의 최적 해를 이용하여 원래 문제의 최적 해를 구할 수 있는 구조중복되는 부분 문제(Overlapping Subproblems): 동일한 부분 문제가 여러 번 반복되는 문제 .. 2024. 9. 20.
[코딩 테스트] 19일차: 탐욕 알고리즘 탐욕 알고리즘 (Greedy Algorithm)탐욕 알고리즘은 매 순간 가장 최적이라고 생각되는 해를 선택하여 문제를 해결하는 방법입니다. 이 방법은 부분적인 최적 해가 전체적인 최적 해가 될 수 있는 문제에 적합합니다. 탐욕 알고리즘은 주로 최적화 문제에 사용됩니다.탐욕 알고리즘의 주요 개념현재 시점에서 가장 좋은 선택: 각 단계에서 가장 좋은 선택을 하여 문제를 해결부분 최적 해: 각 부분 문제에서의 최적 해가 전체 문제에서도 최적 해가 되는 경우활동 선택 문제 (Activity Selection Problem)활동 선택 문제는 시작 시간과 종료 시간이 주어진 여러 활동 중에서 서로 겹치지 않게 최대한 많은 활동을 선택하는 문제입니다. 탐욕 알고리즘을 이용하여 해결할 수 있습니다. 예제: 활동 선택 .. 2024. 9. 19.
[코딩 테스트] 17일차: 그래프의 심화 알고리즘 그래프의 심화 알고리즘이번 글에서는 그래프의 심화 알고리즘에 대해 알아보겠습니다. 위상 정렬, 강결합 컴포넌트, 최소 컷 최대 유량 등의 알고리즘을 살펴보겠습니다.위상 정렬 (Topological Sort)위상 정렬은 방향 그래프의 모든 노드를 순서대로 나열하는 알고리즘입니다. 주로 작업의 순서를 결정할 때 사용됩니다. 위상 정렬은 사이클이 없는 방향 그래프(DAG)에서만 적용 가능합니다. 예제: 위상 정렬 구현 (Kahn's Algorithm)JavaScriptfunction topologicalSort(vertices, edges) { const adjList = new Map(); const inDegree = new Map(); const queue = []; const result = [.. 2024. 9. 17.
[코딩 테스트] 16일차: 트리 알고리즘 트리 알고리즘트리는 노드와 간선으로 이루어진 자료구조로, 사이클이 없는 연결 그래프입니다. 이진 트리, 이진 탐색 트리(BST), AVL 트리, 힙(Heap) 등 다양한 트리 구조가 있으며, 각기 다른 특성과 용도를 가지고 있습니다.이진 트리와 이진 탐색 트리 (BST)이진 트리는 각 노드가 최대 두 개의 자식을 가지는 트리입니다. 이진 탐색 트리(BST)는 이진 트리의 일종으로, 왼쪽 자식은 부모보다 작고, 오른쪽 자식은 부모보다 큰 값을 가지는 트리입니다. 예제: 이진 탐색 트리 구현JavaScriptclass TreeNode { constructor(value) { this.value = value; this.left = null; this.right = null; }}class.. 2024. 9. 16.
반응형