목록dfs (48)
N
https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DFS를 이용한 문제 풀이. 우선 answer에 -Infinity 2개를 넣어주어서 최대값 갱신을 할 수 있도록 한다. 이모티콘 할인율은 10, 20, 30, 40 4개가 있으므로 discounts 배열에 저장. users와 emoticons의 길이를 나타내는 변수 usersLength, emoticonsLength. 각 유저가 이모티콘을 구매했을 때의 비용을 나타내는 userCost를 선언한다..
https://school.programmers.co.kr/learn/courses/30/lessons/92345?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DFS를 이용해 시뮬레이션을 풀었다. dfs에 전달하는 것은 현재 플레이어의 x, y 좌표, 다음 플레이어의 x, y 좌표다. 우선 return할 변수 result를 선언하여 [false, 0]으로 저장한다. result는 [진행 여부, 움직인 횟수]를 뜻한다. 우선 인자로 받아온 좌표(ax, ay)가 상하좌우로 움직일 수 있는지 판단한다. 만약 4방향 모두 움..
https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net DFS를 이용한 완전 탐색. 우선 N x N 크기의 보드를 만든 후 숫자를 저장한다. 이후 for문을 이용하여 상,하,좌,우로 움직이는데, 이를 dfs 함수로 한다. dfs 함수는 (방향, 보드, 움직인 횟수)를 매개변수로 넘겨준다. dfs() 우선 dfs 종료 조건을 정의한다. count == 5면 board를 순회하여 answer보다 큰 숫자를 갱신한 후 retur..
https://programmers.co.kr/learn/courses/30/lessons/77486?language=cpp 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr map과 dfs를 활용한 문제 풀이. 우선 enroll과 referral의 관계를 map 형태로 그려준다. 또한, cost라는 map을 이용해서 수익을 구할 것이다. enroll과 referral을 for문으로 순회하면서 map을 형성. key = enroll[i]로 하고, value = referral[i]로 저장한다. 만약 ref..
https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/ Flatten a Multilevel Doubly Linked List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 주어진 양방향 리스트를 평탄화를 하여 리턴해야 한다. 우선 예외처리로 head가 비어있다면 그대로 비어있는 head를 리턴한다. 그렇지 않다면 DFS로 모든 노드를 배열에 담아주도록 한다. 담는 순서는 현재 방문한 노..
https://leetcode.com/problems/minesweeper/ Minesweeper - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com DFS를 이용한 문제풀이. 탐색에 필요한 변수와 배열을 미리 선언한다. 또한, 탐색 시 board의 범위를 벗어나는지 검사하는 checkRange도 정의. dfs함수에는 탐색할 x, y 좌표를 받아 8방향을 검사하면 된다. dfs() 시작은 board[x][y] 좌표에 방문했다는 표시로 visited[x][y] = ..
https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr const solution = (user_id, banned_id) => { const list = []; const answer = []; const dfs = (index, map) => { if(index === list.length){ if(map.size === list.length){ const string = []; for(const [k, _] o..
200. Number of Islands Given an m x n 2D binary grid grid which represents a map of '1's (land) and '0's (water), return the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water. Example 1: Input: grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","..