1) 생각 체스판에 N개의 Queen을 겹치지 않는 범위로 놓을 수 있는가에 관한 문제이다.백 트래킹이라하는 알고리즘의 대표적인 문제로 볼 수 있다. 모든 경우의 수를 따져보면서 중간에 아니다 싶으면 백 해서 다시 맞나 살펴보는 형태의 알고리즘이다. 따라서 해당 경로를 방문 표시 할 수 있는 배열을 만들어 주었다.NxN 크기의 배열을 만들어서 진행을 하였는데 다른 풀이들을 보니 1차 배열로도 문제를 풀 수 있는것 같다. 이경우는 좀 더 빠르게 문제를 해결할 수 있을 것이다. 2) 방안 백트래킹을 하며 Queen을 한 줄에 하나씩 놔보면서 진행한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445import ..
1) 생각기간 N이 주어지고 N일동안 날마다 할 상담의 보수와 상담에 걸리는 시간이 주어질 때, 최대 보수를 구하는 문제이다.이전에 SW Expert Academy에서 풀었던 [SW Expert] 5215번 햄버거 다이어트 문제와 유사하다.다른 점이 있다면 시간을 신경써줘야 한다는 점이다.2) 방안 해당 날짜에 상담을 시작하면 주어진 시간 만큼 상담을 하지 못하므로 Index 번호를 해당 날짜에 주어진 상담 기간 만큼 늘려주어 해결하였다. 123456789101112131415161718192021222324252627282930313233import java.io.IOException;import java.util.Scanner; public class Main{ static int n; static ..
1) 생각 숫자 n이 주어지면 1, 2, 3을 더해가면서 n이 만들어 질 수 있는 개수를 구하여라. 처음 생각문제 분류를 보면 다이나믹 프로그래밍으로 되어있으나 n의 범위가 11보다 작으므로 완전 탐색을 이용해서 풀었다. 2) 방안 더하고 있는 값이 n보다 커질 경우 탐색에 의미가 없으므로 return 해주었다. 12345678910111213141516171819202122232425262728293031import java.io.IOException;import java.util.Scanner; public class Main{ static int n; public static void main(String[] args) throws IOException { Scanner sc = new Scanne..
- Total
- Today
- Yesterday