알고리즘

알고리즘

완전탐색

완전탐색: 말 그대로 가능한 모든 경우들을 탐색하는 방법. 완전탐색 기법 - 단순 Brute-Force - 비트마스크(Bitmask) - 재귀 함수 - 순열 (Permutation) - BFS / DFS 1. 단순 Brute-Force 어느 기법을 사용하지 않고 단순히 for문과 if문 등으로 모든 case들을 만들어 답을 구하는 방법이다. 이는 아주 기초적인 문제에서 주로 이용되거나, 전체 풀이의 일부분으로 이용하며, 따라서 당연히 대회나 코테에서는 이 방법만을 이용한 문제는 거의 나오지 않는다. 2. 비트마스크(Bitmask) 2진수를 이용하는 컴퓨터의 연산을 이용하는 방식이다. 완전 탐색에서 비트마스크는 문제에서 나올 수 있는 모든 경우의 수가 각각의 원소가 포함되거나, 포함되지 않는 두 가지 선택..

알고리즘

DFS/BFS

BFS, DFS 두가지 모두 그래프를 탐색하는 방법입니다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조의 일종을 말하며, 그래프 탐색은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말합니다. DFS 깊이 우선 탐색 (Depth-First Search) 출처 https://developer-mac.tistory.com/64 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식을 말합니다. 예를 들어, 미로찾기를 할 때 최대한 한 방향으로 갈 수 있을 때까지 쭉 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 그 갈림길부터 다시 다른 방향으로 탐색을 진행하는 ..

알고리즘

그리디 알고리즘(탐욕법)

그리디 알고리즘 현재 상황에서 가장 좋아 보이는 것만 선택하기를 반복하는 방법. 부분의 최적 해가 전체의 최적 해에 가까워진다. 마지막에 최적의 해에 도달했는지 검토하고 최적의 해가 구해지지 않았다면 처음으로 돌아간다. 프로그래머스: 체육복 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(n, lost, reserve) { //양쪽에 있는 경우 let newLost = lost.filter((x) => !reserve.includes(x)); let newReserve = reserve.filter((x) => !lost.i..

JeanneLee57
'알고리즘' 태그의 글 목록