자바
-
0. 배경 아래 문제를 어떻게 해결할 수 있을까? 가짜 동전은 무게가 조오금 작다! 양팔 저울을 최소로 사용해서 N개의 동전 중에 가짜 동전 한 개를 찾는 방법은? 전부 다 조회 해서 찾아볼 수도 있을 것이다. 하지만 동전의 갯수가 1억개, 10억개 같이 많아진다면? 시간이 매우 오래 걸릴 것이다. 다른 방법이 필요하다. 가장 빠르게 찾을 수 있는 방법은 다음과 같다. 1. 절반을 눠서 저울에 올려본다. 2. 한쪽이 가벼워진다 3. 가벼운 한쪽을 다시 절반으로 나눠서 저울에 올려본다 4. 더이상 나눌 수 없을 때까지 1~3번 과정을 반복한다. 이것이 분할 정복의 원리이다. 2. 분할 정복 정의 분할 정복이란 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법이나 알고리즘 문제를 절반(혹은 ..
3. 분할정복0. 배경 아래 문제를 어떻게 해결할 수 있을까? 가짜 동전은 무게가 조오금 작다! 양팔 저울을 최소로 사용해서 N개의 동전 중에 가짜 동전 한 개를 찾는 방법은? 전부 다 조회 해서 찾아볼 수도 있을 것이다. 하지만 동전의 갯수가 1억개, 10억개 같이 많아진다면? 시간이 매우 오래 걸릴 것이다. 다른 방법이 필요하다. 가장 빠르게 찾을 수 있는 방법은 다음과 같다. 1. 절반을 눠서 저울에 올려본다. 2. 한쪽이 가벼워진다 3. 가벼운 한쪽을 다시 절반으로 나눠서 저울에 올려본다 4. 더이상 나눌 수 없을 때까지 1~3번 과정을 반복한다. 이것이 분할 정복의 원리이다. 2. 분할 정복 정의 분할 정복이란 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법이나 알고리즘 문제를 절반(혹은 ..
2022.08.21 -
1. 문제 접근 1)W으로 시작하는 체스판, B로 시작하는 체스판 두 종류가 있기 때문에 두 종류를 기준으로 얼마나 뒤집어야하는지 확인해야겠다 2) 그런데 결국 두 종류는 서로 반대되기 때문에, 한 종류만 우선 비교해보고 다른 한종류는 전체 뒤집는 경우의 수에서 빼면 되겠다. 3) 전체 경우의 수는 64번! 2. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Silver4_1018_체스판다시칠하기 { public static void main(String..
백준 1018 - 체스판 다시 칠하기1. 문제 접근 1)W으로 시작하는 체스판, B로 시작하는 체스판 두 종류가 있기 때문에 두 종류를 기준으로 얼마나 뒤집어야하는지 확인해야겠다 2) 그런데 결국 두 종류는 서로 반대되기 때문에, 한 종류만 우선 비교해보고 다른 한종류는 전체 뒤집는 경우의 수에서 빼면 되겠다. 3) 전체 경우의 수는 64번! 2. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Silver4_1018_체스판다시칠하기 { public static void main(String..
2022.08.15