본문 바로가기
반응형

백준/완전탐색15

백준 9095. 1, 2, 3 더하기 🅰 백준 9095. 1, 2, 3 더하기 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net ✏️ 문제 풀이 알고리즘 분류에 DP라고 되어있는데 재귀함수를 이용하여서 풀었다. 들어오는 n값에 -1,-2,-3을 한 값을 재귀로 돌려서 n이 0이되면 cnt++을 해줘서 케이스 수를 더해준 다음 재귀 종료 후 모든 케이스를 출력해주었다. ✏️ 소스코드 package bruteforce; import java.io.*; public class Main_실버3_9095_손은성 { static int cnt; public static void main(String[] args) throws Exception{ Buffer.. 2021. 8. 26.
백준 10974. 모든 순열 🅰 백준 10974. 모든 순열 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net ✏️ 문제 풀이 모든 순열은 다음순열이랑 똑같은 문제이다. 다만 들어오는 데이터를 1부터 N까지 따로 저장을 해줘서 np를 수행해 주면 된다. ✏️ 소스코드 package bruteforce; import java.io.*; public class Main_실버3_10974_손은성 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); St.. 2021. 8. 26.
백준 10973. 이전순열 🅰 백준 10973. 이전순열 10973번: 이전 순열 첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net ✏️ 문제 풀이 이전순열은 다음순열과 마찬가지로 np를 이용해서 풀었다. 하지만 내림차순으로 정렬되어야 하기 때문에 앞에서 부터 탐색을 하기 위해 np함수 내 데이터의 부등호만 변경해주었다. ✏️ 소스코드 package bruteforce; import java.io.*; import java.util.*; public class Main_실버3_10973_손은성 { public static void main(String[] args) throws Exception{ BufferedRead.. 2021. 8. 26.
백준 10972. 다음 순열 🅰 백준 10972. 다음 순열 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net ✏️ 문제 풀이 자바에는 없는 next-permutation을 구현하는 문제이다. 먼저 입력 배열을 오름차순으로 정렬하는 것이 중요하다. 정렬 후 np함수를 통해 데이터를 출력한다. np에 대한 내용은 따로 정리해서 올리겠다. ✏️ 소스코드 package bruteforce; import java.util.*; import java.io.*; public class Main_실버3_10972_손은성 { public static void main(String[] args) throws Exce.. 2021. 8. 26.
백준 1476. 날짜 계산 🅰 백준 1476. 날짜 계산 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net ✏️ 문제 풀이 전체 데이터가 7980밖에 안되므로 for문을 이용하여 돌려주었다. 들어오는 년도를 각각의 세 수의 차 % 각 수의 년도를 해주었을 때 전부 0이 나오는 년도가 정답이다. ✏️ 소스코드 package bruteforce; import java.util.*; import java.io.*; public class Main_실버5_1476_손은성 { public static void main(String[] args) thr.. 2021. 8. 26.
백준 11723. 집합 🅰 백준 11723. 집합 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net ✏️ 문제 풀이 비트마스크를 이용하여 푸는 문제이다 string.startsWith를 이용하여 각 문자열로 시작되면 데이터를 수정하게 하였다. 각 문자열 마다 연산해야 할 x의 위치가 정해져 있기 때문에 string.subString을 이용하여 x부터 끝까지 문자열을 읽어서 int형으로 변환하였다 변환 후 각 연산문자열에 맞춰 비트마스크를 이용하여 답을 구현하였다. ✏️ 소스코드 package bruteforce; import java.io.BufferedReader; i.. 2021. 8. 26.