dfs
-
[백준 2606] 바이러스 - dfs , javascript알고리즘/코딩 테스트 2023. 2. 15. 19:45
문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 알고리즘 0. 문제 해석 : 첫 번째 컴퓨터와 연결되어 있는 컴퓨터를 모두 찾는 문제이다 1. set 이용 : 중복되는 컴퓨터가 있을 수 있으니 set을 이용한다. 2. dfs 함수 : 반복되는 동작을 수행한다. 문제 풀이 1. set과 stack에 초기 값을 넣어주고 dfs 함수를 부른다. const set = new Set() let stack = [1] while(stack.length){ ..
-
[코딩테스트 javascript] 큰 수 만들기 - Greedy ,그리디, 탐욕알고리즘/코딩 테스트 2023. 2. 2. 20:19
큰 수 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 ..
-
[코딩테스트 javascript] 조이스틱 - Greedy ,그리디, 탐욕,DFS,깊이 탐색 알고리즘, 그래프 탐색 알고리즘알고리즘/코딩 테스트 2023. 2. 2. 15:49
조이스틱 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학..
-
[코딩테스트 javascript] 여행경로 - BFS,DFS , 그래프 탐색 알고리즘, 너비탐색알고리즘,깊이탐색알고리즘알고리즘/코딩 테스트 2023. 2. 1. 21:44
여행경로 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용..
-
[코딩테스트 javascript] 네트워크 - DFS , 그래프 탐색 알고리즘알고리즘/코딩 테스트 2023. 1. 30. 19:27
네트워크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 sol..
-
[코딩테스트 javascript] 타겟넘버 - DFS , 그래프 탐색 알고리즘알고리즘/코딩 테스트 2023. 1. 27. 17:09
타겟넘버 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는..
-
[코딩테스트 javascript] 안전지대 - DFS , BFS, 그래프 탐색 알고리즘알고리즘/코딩 테스트 2023. 1. 26. 14:26
안전지대 https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다. 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성..
-
[알고리즘] 그래프 탐색 알고리즘 - BFS, DFS알고리즘 2023. 1. 26. 12:16
오늘은 비선형 구조 중 그래프를 탐색하는 알고리즘을 배워볼 시간이다. 더보기 자료구조 : '데이터의 저장'을 담당하는 것을 말한다. 분류 선형 구조 ) 리스트 , 큐, 스택 비선형 구조 ) 그래프, 트리 파일 구조 ) 순차 파일, 색인 파일, 직접파일 단순 구조 ) 정수, 실수, 문자, 문자열 알고리즘 : 표현 및 저장된 데이터를 대상으로 하는 '문제 해결 방법'을 말한다. 그래프 탐색 알고리즘 그래프 - 여러 개체들이 연결되어 있는 자료구조 탐색 - 특정 개체를 찾기 위한 알고리즘 예시 1. 경로 탐색 ( 최단거리 , 시간) 2. 네트워크 (연결) 3. 조합 (모든 조합 찾기) DFS 깊이 우선 탐색 알고리즘 stack을 이용 => list의 경우 push(), pop()을 이용 const graph ..