코딩 테스트 준비 및 CS 공부에 필요성을 느껴 현재 배우고 있는 언어인 JavaScript를 이용하여 알고리즘 공부를 시작하고 기록해보려고 한다 ! 목적 정해진 시간에 몇 개의 알고리즘 문제를 제시하기 때문에 적절한 알고리즘을 활용한 문제를 해결할 수 있는 능력을
입출력 형식 약속된 입출력 양식이 주어진다. > 1. 데이터를 입력 받거나 생성 > 2. 적절한 알고리즘을 사용하여 도출한 정답을 정해진 양식으로 출력한다.
지금까지 JS를 다룬적이 거의 없었기 때문에 관련된 입출력이나 저장하는 방법 등에 대해 정리해놓고 찾아볼 필요성이 있다고 생각했다.
다수의 자료(data)를 담기 위한 구조이다.데이터의 수가 많을수록 효율적인 자료구조가 필요하다.
배열, 연결 리스트, 스택, 큐에 대해 알아보았다.
트리, 우선순위 큐, 힙, 그래프에 대해 알아보자
매 단계에서 가장 작은 원소를 선택해 앞으로 보내는 정렬 방법시간 복잡도 O(N^2)로 비효율적인 정렬 알고리즘 중 하나이다.외우지 않아도 구현할 수 있을 정도로 쉽게 구현이 가능하다.인접한 두 원소를 확인하여 위치를 서로 변경한다.시간 복잡도 O(N^2)로 비효율적인
문제는 난이도 순으로 정렬에 관한 문제에 대해 푸는 포스팅을 시작한다.
정렬 알고리즘 문제 풀이 2탄
탐욕 알고리즘 (Greedy Algorithm) 현재 상황에서 당장 가장 좋아 보이는 상황만을 선택하는 알고리즘 > 주로 코딩 테스트에서 앞 부분 쉬운 문제로 출제된다고 한다. 예시 해당 그래프에서 루트에
1. 설탕 배달 (2839) 2. A -> B (16953) 3. 수들의 합 (1789) 4. 신입 사원 (1946)
1. 주유소 (13305) A도시에서 N도시로 이동하는데 여러 도시를 거쳐 간다. 거리와 주유소의 비용이 각 도시마다 다른데 최소 비용으로 N도시에 도착하면 되는 문제다. 해결 방법 첫 도시에서