목록DFS (5)
개발저장소
문제 https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 풀이 N자리 숫자 중 왼쪽부터 1자리, 2자리, 3자리, ... N자리까지 모든 수가 소수가 되는 숫자를 모두 출력한다. ex) 7331 => 7, 73, 733, 7331 모두 소수이다. N은 1보다 크고 8보다 작다. 출력되는 소수는 오름차순으로 정렬한다. 1자리씩 점점 숫자를 늘려가며 소수인 경우만 가지를 뻗는 백트래킹 문제이다. 1자리는 2, 3, 5, 7만 가능하기 때문에..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 N x N 체스판 위에 퀸을 N개 놓는 경우의 수를 구한다. 이때, 퀸은 서로를 공격할 수 없는 위치에 두어야 한다. 퀸은 가로, 세로, 대각선으로 거리에 상관없이 움직일 수 있는 말이다. N은 12 이하의 자연수이다. 대표적인 백트래킹 문제라고 한다. 이때, 조건은 해당 위치에 퀸을 놓을 수 있는가가 된다. 체스판이기 때문에 2차원 배열을 사용해야 할 것 같지만 하나의 행 또는 열에는..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 한자리 숫자들을 조합하여 만들 수 있는 소수의 개수를 구한다. 종이 조각은 최대 7개이고 0에서 9까지 숫자 중 하나이다. 맨 앞에 0이 들어간 경우 0을 제외한 숫자로 생각한다. (11과 011은 같은 숫자이다.) 저장되는 소수는 set을 사용해서 중복이 제거된 개수를 구해준다. 소수를 판별하는 방법은 숫자보다 작은 수들을 나눠서 0이 되지 않으면 소수로 생각..
문제https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이주어진 항공권을 모두 사용해서 여행경로를 짠다. 출발은 무조건 "ICN" 공항에서 한다.tickets의 각 행의 0번 인덱스는 출발 지역, 1번 인덱스는 도착 지역이다.만약 두가지 이상의 여행경로가 나온다면 알파벳 순서가 앞서는 경로를 선택한다.모든 도시를 방문할 수 없는 경우는 주어지지 않는다. 여행경로를 위해 주어진 항공권을 끝까지 탐색해야 하기 때문에 DFS를 사용해야 한다.이때, 여러..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 n개의 음이 아는 정수들을 더하거나 빼서 타겟 넘버를 만들어야 한다. 순서를 서로 바꾸지 않기 때문에 같은 값이라도 다른 숫자로 취급한다. n개의 정수들을 모두 계산해야 하기 때문에 DFS로 모든 경우의 수를 탐색하는 방향으로 문제에 접근하였다. 먼저 DFS의 재귀 탈출 조건을 생각하였다. n개의 정수를 모두 계산해야 하니까 배열의 길이를 탈출 조건으로 걸어 DFS의 깊이가 같아지는 순..