Algorithm/Problem_백준15 분할 정복(2630, 1992) [색종이 만들기 _ 2630] * 조건 전체 색종이의 크기 n(2의 배수)이 주어진다 하얀색(0)과 파란색(1)이 배열 값으로 주어진다 전체 종이가 같은색으로 이루어져있지 않으면 n/2만큼 가로 세로로 자른다(4등분) 잘린 영역 내에서 같은 색으로 이루어져 있다면 그 부분은 안잘라도 된다 자른 영역이 한 칸이 될 때까지 반복한다 최종적으로 잘린 하얀색과 파란색의 색종이 개수를 출력한다 * 알고리즘 분할 정복 * 로직 현재 사이즈에서 모두 같은 색상으로 이루어져있는지 확인 같은 색상이라면 하얀색 또는 파란색의 카운트를 하나 늘림 만약 같지 않다면 사이즈를 n/2를 적용시킨 후, 4분할된 영역을 한군데씩 다시 탐색 이를 반복한다 import java.util.Scanner; public class Probl.. 2019. 11. 21. 큐, 덱(10845, 2164) [큐 _ 10845] import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Problem_10845 { public static void main(String[] args) { Queue queue = new LinkedList(); Scanner scanner = new Scanner(System.in); int operationNum = scanner.nextInt(); for(int i=0; i 2019. 11. 19. 스택(10773, 4949) [제로 _ 10773] * 조건 숫자를 계속 입력하다가 0이 나오게 되면 가장 최근에 입력된 숫자를 지운다 최종적으로 적어낸 수의 합을 출력한다 * 알고리즘 - 스택(stack) * 로직(Logic) - 리스트에 순차적으로 담다가 0이 나오게 되면 마지막으로 입력된 숫자를 제거한다 - 최종적으로 담긴 리스트들의 합을 구한다 import java.util.ArrayList; import java.util.Scanner; public class Problem_10773 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArrayList lists = new ArrayList(); int k = scanner.. 2019. 11. 5. 이전 1 2 3 4 5 다음