JAVA/Coding Test 114

[JAVA] 백준 9663 N-Queen_백트래킹

https://www.acmicpc.net/problem/9663 9663번: N-QueenN-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.www.acmicpc.net 접근 :   - N 의 크기를 받는다.  - 세로의 길이가 N 이므로 N개의 Queen을 놓기위해선 각 줄마다 1개의 Queen 이 존재해야 한다.  - Queen을 놓을 때, + 모양으로 겹치는 Queen이 있는지 확인한다.  - Queen을 놓을 때, x 모양으로 겹치는 Queen이 있는지 확인한다.  - Queen을 n 개 까지 놓으면 카운트를 1 증가 시킨다.  - depth = Queen의 갯수 = y 좌표..

JAVA/Coding Test 2023.03.17

[JAVA] 백준 15650 N과M(2)_백트래킹

https://www.acmicpc.net/problem/15650 15650번: N과 M (2)한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해www.acmicpc.net  접근 :   - n 과 m 을 입력 받는다.  - 이전의 숫자를 보유(now)한다.  - Depth 를 내려갈 때, 이전의 숫자(now) +1 부터 수를 증가시킨다.   * 비오름차순을  코드에서, 위의 조건만 추가하면 된다. https://kjwit.tistory.com/entry/JAVA-%EB%B0%B1%EC%A4%80-15560-N%EA%B3%BCM-2%EB%B0%B1%ED%8A%B8%EB..

JAVA/Coding Test 2023.03.16

[JAVA] 백준 15560 N과M (4)_백트래킹

https://www.acmicpc.net/problem/15652 15652번: N과 M (4)한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해www.acmicpc.net  접근 :   - N 과 M 을 입력 받는다.  - 이전의 숫자를 보유(now)한다.  - Depth 를 내려갈 때, 이전의 숫자(now) 부터 수를 증가시킨다.   * 비오름차순을 제외한 코드에서 for 루프를 돌 때, 위의 조건만 추가하면 된다. https://kjwit.tistory.com/entry/JAVA-%EB%B0%B1%EC%A4%80-15651-N%EA%B3%BC-M-3%EB%B0%B..

JAVA/Coding Test 2023.03.16

[JAVA] 백준 15650 N과 M (1)_백트래킹

https://www.acmicpc.net/problem/15650 15650번: N과 M (2)한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해www.acmicpc.net 접근 :   -  최대 숫자 N 과 뽑는 갯수 M을 입력 받는다.  - 1 부터 N 까지 M 개를 뽑는다.  - 중복인 숫자는 뽑지 않는다.  - dfs 에서 depth를 내려갈 때, 중복인 숫자인 경우 더 이상 내려가지 않고 올라간다.   코드 구현 :   - 이너 클래스 사용import java.io.*;public class Main { static class Dfs { private Str..

JAVA/Coding Test 2023.03.09

[JAVA] 백준 15651 N과 M (3)_백트래킹

https://www.acmicpc.net/problem/15651 15651번: N과 M (3)한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해www.acmicpc.net  접근 :   - 최대 크기 N 과 뽑아야 하는 갯수 M 을 입력 받는다.  - 1부터 N까지 중복해서 M 개를 뽑는다.  - DFS(Depth-First Search)로 구현해서 결과를 출력한다.    코드 구현 :   - 이너 클래스 사용import java.io.*;public class Main { static class Dfs { private StringBuilder result; p..

JAVA/Coding Test 2023.03.09

[JAVA] 백준 1004 어린 왕자_기하1

https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 접근 : - 테스트 케이스 갯수 T를 받는다. (코드에서는 n으로 구현) - 출발점과 도착점을 받는다. - 행성수 n을 입력 받는다. (코드에서는 planet_num 으로 구현) - 출발점과 도착점의 좌표가 행성의 원의 방정식에 포함 여부를 확인하여 진입/이탈 횟수를 계산한다. - 발생할 수 있는 경우의 수는 다음과 같다. 코드 구현 : import java.io.*; public ..

JAVA/Coding Test 2023.03.08

[JAVA] 백준 1002 터렛_기하1

https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 접근 : - 테스트 케이스 갯수 n 을 입력받는다. - 두 원의 원점의 좌표 와 반지름을 입력 받는다. - 두개의 원의 접점을 출력한다. - 두개의 원이 존재할 경우는 다음과 같다. 코드 구현 : import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new In..

JAVA/Coding Test 2023.03.07

[JAVA] 백준 2477 참외밭_기하1

https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net 접근 : - 회전 하는 경우와 시작점이 무작위 임으로, 회전과 시작점을 사용하지 않는 방법을 사용해야한다. - 변 길이를 반시계 방향으로 순서대로 입력 받으므로 이를 활용한다. - 사각형의 넓이를 사용하면 회전 및 순서에 영향을 받지 않으므로 이 성질을 이용한다. - 반시계 방향으로 받은 변 2개씩 곱하여 넓이를 구하면 특정 형태의 넓이가 나타난다. - 이를 이용하여 넓이당 참외 수 와 특정 모..

JAVA/Coding Test 2023.03.06

[JAVA] 백준 3009 네 번째 점_기하1

https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 접근 : - 좌표 3개의 값을 받아 x 좌표 배열, y 좌표 배열로 입력한다. - 직사각형 이기 때문에 같은 값의 좌표가 2개 씩 쌍으로 존재해야 한다. - 입력 받은 좌표 중 쌍을 이루지 않는 1개의 값을 찾아서 나머지 1개 의 값의 좌표로 입력한다. - x 좌표값 기준으로 경우의 수를 나누어 보면 1, 1, 3, target_x 인 경우( 1번째 x 좌표값과 2번째 x 좌표의 값이 같은 경우 3번째 값이 target 값이 된다) 1, 3, 1 ,target_x 인 경우( 1..

JAVA/Coding Test 2023.03.06

[JAVA] 백준 1085 직사각형에서 탈출_기하1

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 접근 : - 사각형 내부의 점 x, y 좌표를 입력받는다. - 사각형 끝 지점인 w, h 좌표를 입력받는다. - x , y , w - x, h - y 거리 중 가장 짧은 값을 결과로 출력한다. 코드 구현 : import java.io.*; import java.util.HashSet; public class Main { public static void main(String[]..

JAVA/Coding Test 2023.03.06