분류 전체보기

Algorithm

백준 15903 카드 합체 놀이

15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 사용한 숫자로 다시 새로운 숫자를 만들어 사용해야 하고, 카드의 구성이 지속적으로 바뀌기 때문에 우선순위 큐를 사용해서 가장 작은 카드 두장을 계속 합해가면 풀 수 있습니다. 문제코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java...

Algorithm

백준 2447 별찍기10

2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 문제 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class boj2447 { private char[][] starboard; public void solution() throws IOException { int n = Integer.parseInt(n..

Algorithm

백준 17829 222-풀링

17829번: 222-풀링 조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 22 www.acmicpc.net 평범하게 범위를 반씩 나눠가며, 총 네개의 원소가 남을때까지 반복하는 분할 정복 문제입니다. 문제 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class boj17829 { int[][..

Algorithm

이진 탐색 알고리즘

이진 탐색 이진 탐색이란 이미 정렬된 원소의 나열에서, 어떤 특정 자료를 찾기 위해 검색 범위를 절반으로 줄여가는 검색 알고리즘입니다. 💡 이진 탐색 과정 1) 가운데 위치의 원소를 고르고 비교한다.찾는 원소가 일치한다면 검색에 성공한다. 2) 찾는 원소보다 값이 크다면 왼쪽 절반을 다음 검색 대상으로 선택한다. 3) 찾는 원소보다 값이 작다면 오른쪽 절반을 다음 검색 대상으로 선택한다. 4) 찾는 원소를 만나거나, 찾을 수 있는 범위가 사라졌을 때 검색을 종료한다. 이진 탐색 시간복잡도 최선: O(1) 평균: O(log N) 최악: O(log N) 최선의 경우는 첫 루프에서 원하는 값을 찾은 경우입니다. 이럴 경우 O(1)의 시간복잡도를 가지게 됩니다. 그 외의 경우에는 탐색할 범위가 대략 절반씩 줄어..

Algorithm

퀵 정렬(Quicksort) 알고리즘

분할 정복 Divide & Conquer Quicksort 퀵 정렬 퀵 정렬은 병합 정렬처럼 분할 정복 알고리즘 기법으로 만들어진 정렬 방법입니다. 퀵 정렬에서는 pivot이라는 기준을 하나 정하고, 왼쪽은 기준보다 작은 값, 그리고 더 큰 값은 기준 오른쪽으로 옮기면서 배열을 둘로 분할한 후 정렬합니다. 보통 pivot은 맨 앞이나, 맨 뒤, 혹은 중간에 위치한 값을 선택합니다. 나뉘어진 하위 배열에 대해 재귀적으로 퀵 정렬을 호출하여, 모든 배열이 기본 배열(요소가 하나뿐인 배열)이 될 때까지 반복하면 정렬이 완료됩니다. 💡 퀵 정렬 과정 1) 배열 맨 앞에 있는 수를 pivot으로 설정한다. 그리고 배열의 길이가 n일 때, 배열의 시작점은 0이 되고 도착점은 n -1이 된다. 2) pivot 값을 ..

Algorithm

백준 1992 쿼드트리

1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 문제 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { // 입력에 대한 정보를 클래스 필드로 저장한다. // 입력된 0과 1로 구성된 이미지 private char[][] image; // 결과를 저장하기 위한 StringBuilder public StringBuilder quadTreeBui..

dalooong
'분류 전체보기' 카테고리의 글 목록 (6 Page)