일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스택/큐
- 백트래킹
- 브루트포스
- Level 3
- BFS
- 2020 카카오 인턴십
- level 1
- Gold 5
- pass
- Level 2
- 2020 KAKAO BLIND
- SWEA
- 부스트코스
- DFS
- DP
- next_permutation
- 시뮬레이션
- 2019 KAKAO BLIND
- Level 4
- 그리디
- 삼성 SW 역량 테스트
- 프로그래머스
- Web
- 코드 리뷰
- 백준
- c++
- 월간 코드 챌린지
- Gold 4
- 구현
- 코드리뷰
- Today
- Total
목록DFS (12)
Min:D's Devlog
문제 백준 삼성 SW 역량 테스트 기출 문제 - 14502 연구소 (Gold 5) 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net 문제 풀이 접근 방식 이 문제는 벽 3개를 세운 뒤, 얻을 수 있는 안전 영역 크기의 최댓값을 구하는 문제이다. 우선, 3중 for문으로 벽 3개를 세운 뒤, DFS 함수를 만들어 바이러스를 퍼뜨려주었다. (입력 받을 때, 바이러스의 위치를 저장하여 BFS 방식으로 바이러스를 퍼뜨려줘도 된다.) 그 후, map에 있는 0의 개수를 세어 안전 영역의 크기를 구해주었다. 이 값을 max값과 비교하..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 14888 연산자 끼워넣기 (Silver 1) 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, �� www.acmicpc.net 문제 풀이 접근 방식 숫자와 각 연산자의 개수가 주어질 때, 만들 수 있는 식의 결과의 최댓값과 최솟값을 구하는 문제이다. 이 문제는 어떤 연산자를 먼저 사용할 지 결정하여 최종적인 식의 결과를 구하는 문제이기 때문에, DFS 함수를 만들어 답을 구해주었다. DFS 함수는 연산자의 개수를 저장한 벡터와, 현재 ..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 15684 사다리 조작 (Gold 5) 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 문제 풀이 접근 방식 사다리에 가로선을 추가하여 i번 세로선의 결과가 i번이 나오도록 조작할 때, 추가해야 하는 가로선 개수의 최솟값을 구하는 문제이다. 우선 H×N 크기의 map 벡터를 만들어 사다리의 가로선들을 저장해주었다. 가로선의 왼쪽 부분과 오른쪽 부분을 구분해주어야 하기 때문에, 왼쪽 부분은 1, 오른쪽 부분은 -1로 저장하였다. 그 후, DFS 방식으로 탐색하여 ..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 15683 감시 (Gold 5) 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감�� www.acmicpc.net 문제 풀이 접근 방식 이 문제는 CCTV의 방향을 적절히 정해서, 사각 지대의 최소 크기를 구하는 문제이다. CCTV는 아래와 같이 번호에 따라 감시하는 방향이 다르다. 어느 방향으로 CCTV를 설치했을 때 사각 지대가 최소가 되는 지 구하는 문제이기 때문에, DFS 함수를 만들어 모든 CCTV의 설치 방향(4방향)에 따른 사각 지대의 크기를 구해주었다. DFS 함수에서..
문제 프로그래머스 2020 카카오 인턴십 - 동굴 탐험 (Level 4) 코딩테스트 연습 - 동굴 탐험 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[8,5],[6,7],[4,1]] true 9 [[8,1],[0,1],[1,2],[0,7],[4,7],[0,3],[7,5],[3,6]] [[4,1],[5,2]] true 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[4,1],[8,7],[6,5]] false programmers.co.kr 문제 풀이 접근 방식 프로도가 정한 방문 순서 규칙에 맞게 모든 방을 탐험할 수 있는지를 구하는 문제이다. 이 문제는 이해하기가 너무 어려워서 '질문하기'에 있는 풀이를 참..
문제 SWEA 모의 SW 역량테스트 - 5656 벽돌 깨기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 구슬로 벽돌을 깨서 남은 벽돌의 개수가 최솟값이 되는 경우를 구하는 문제이다. 우선, 구슬을 놓을 위치를 정하기 위해 DFS 함수를 만들어주었다. DFS 함수는 위치를 정해 shoot 함수를 시행하였고, 모든 구슬을 쏘았을 때, 남은 벽돌의 개수를 구하는 방식으로 구현하였다. shoot 함수는 큐를 활용하여 터져야 하는 블록들을 저장하고, 큐 내에 존재하는 블록들을 모두 터뜨린 후, 블록들 간의 빈 공간을 제거해주는 과정을 수행하도록 구현하였다. 빈 공간은 아래에서부터 0의 위치를 세..
문제 SWEA 모의 SW 역량테스트 - 2105 디저트 카페 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 대각선 방향으로 움직이며 사각형을 그리며 출발한 카페로 돌아오는 루트에서 디저트가 겹치지 않는 경로 중 가장 긴 경로를 찾는 문제이다. 어느 방향으로 움직이던 사각형을 그리기만 하면 되기 때문에 시계 방향으로 탐색을 진행하였다. 그리고 가장 윗 모서리에서부터 시작하여 사각형을 그리도록 구현할 것이기 때문에 사각형을 그릴 수 있는 시작 위치는 양 옆이 한 칸 이상 존재하고 아래로 2칸 이상이 존재해야 한다. 이를 고려하여 시작 위치를 한정하였고, 시작 위치에서 DFS 방식으로 탐색하여..
문제 프로그래머스 DFS/BFS - 여행경로 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 ICN 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가..
문제 SWEA 모의 SW 역량테스트 - 2112 보호 필름 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 이 문제는 주어진 보호 필름이 성능검사에 통과하기 위해 최소 몇 번의 약품을 투입해야 하는지 찾는 문제이다. 성능 검사는 보호 필름의 모든 세로 방향에 대해서 동일한 특성의 셀들이 K개 이상 연속적으로 존재해야 통과할 수 있고, 약품 투입을 하게 되면 해당 가로 방향이 모든 같은 특성으로 바뀌게 된다. 약품을 K회 투입하면 무조건 성능검사를 통과할 수 있다. 왜냐하면 같은 특성의 약품을 연속적으로 K회 넣어주면, 무조건 모든 세로 방향에 대해 동일한 특성의 셀이 K개 이상 연속되기 때..
문제 SWEA 모의 SW 역량테스트 - 1949 등산로 조성 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 가장 높은 봉우리에서 시작하여 가장 긴 등산로를 조성하는 문제이다. 등산로를 조성하기 위해서는 상하좌우 네 방향을 탐색하여 이전의 높이보다 낮은 곳으로만 연결해야하고, 딱 한번 산의 높이를 깎는 공사를 할 수 있다. 우선, 입력을 받으며 가장 높은 봉우리의 위치를 찾아 highest에 넣어주었다. 그 다음, 그 위치들에서부터 DFS 탐색을 시작하여 가장 긴 등산로를 찾아주었다. DFS 탐색을 위해 DFS 함수를 만들어주었고, visit 벡터를 활용하여 모든 경우를 탐색해주었다. DF..