본문 바로가기
반응형

[알고리즘 + 자료구조]/[백준]214

[BaekJoon/백준] 2231번 분해합 문제. 2초의 실행제한이다. 모든 분해합의 경우의 수에 대한 데이터. 즉 브루트포스의 결과값에 대한 데이터를 만들어 놓았다가 꺼내 쓰면 된다. 해시 함수(MD5, SHA-1, SHA-255 등)을 사용하여 만들어 낼 수 있는 값들을 왕창 저장해놓는 테이블인 '레인보우 테이블'과 같은 개념이다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String args[]) throws Exception { BufferedReader br = .. 2020. 10. 2.
[BaekJoon/백준] 2798번 문제 이름은 블랙잭. 카테고리는 브루트포스이긴 한데, 세세하게는 재귀함수를 이용한 조합 뽑기라고 보면 된다. 뽑는 모든 경우의 수를 구한 뒤 뽑은 숫자를 더해주고, 이 값들 중 문제에서 주어진 값보다 크지않은 값 중 가장 가까운 값을 출력하는 문제다. BufferedWriter와 BufferedReader를 이용하는 것이 더 프로그램적으로 효율적이나, 가독성을 위해 Scanner와 System.out.print를 사용한 코드를 올립니다. import java.util.Scanner; public class Main { static int N, M; static int[] arr; static boolean[] arr_b; static int max=0; public static void main(Stri.. 2020. 9. 30.
[BaekJoon/백준] 11729번 하노이탑을 재귀함수로 구현하라는 문제다. 하노이탑을 혼자 스스로의 힘으로도 해결하지 못하는데 규칙을 찾아 코드로 구현하라니 정말 나에게는 말이 안되는 난이도다. 문제를 알아가면서, 덕분에 하노이 탑의 규칙성에 대해서도 알게됐다. 하노이 탑의 이동규칙은 다음의 3개이다. 1. N-1개의 원판을 경유지 기둥에 이동 2. 가장 큰 1개의 원판을 목적지 기둥에 이동 3. 경유지 기둥에 있던 N-1개의 원판을 목적지 기둥에 이동 원판이 몇개이던 간에 이전 갯수의 원판의 이동과 연관이 있다. 그렇게 재귀를 구현할 수 있다. 따라서 하노이 탑의 횟수 식 또한 An = 2A(n-1) +1 이라고 볼 수 있고, 이를 계차수열의 일반항 공식으로 풀어주면 탑이 N개일 때 2^N -1 횟수의 규칙을 갖는다. 이 문제를 생각할.. 2020. 9. 27.
[BaekJoon/백준] 2447번 별찍기 문제다. 재귀를 이용한 별찍기 문제인데, 포문을 이용하면 정말 금방 끝날 문제일 것 같은데 문제에서 재귀함수를 이용하란다. 음.. 재귀로 이 문제를 풀기에는 당연히 제한시간 1초에 걸릴 거라고 생각해서 무조건 for문은 들어가겠다고 생각은 들었다. for문을 통한 문제해결의 생각만 들다보니 아무래도 재귀와 for문을 짬뽕시켜 풀게되었다. (JAVA) import java.io.BufferedWriter; import java.io.OutputStreamWriter; import java.util.Scanner; public class star_point { static int arr[][] = new int[2188][2188]; //문제의 제한인 3의7승 +1값(내 코드는 1,1부터 시작하므로).. 2020. 9. 26.
반응형