목차 분할 정복 단계 [Java+Python]1992번, 쿼드 트리 [Java+Python]1780번, 종이의 개수 [Java+Python]1629번, 곱셈 [Java+Python]11401번, 이항 계수 3 [Java+Python]2740번, 행렬 곱셈 [Java+Python]10830번, 행렬 제곱 [Java+Python]11444번, 피보나치 수 6 [Java+Python]6549번, 히스토그램에서 가장 큰 직사각형 문제 아래 과 같이 여러 개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종..
목차 Divide and Conquer 분할 정복 알고리즘은 큰 문제를 작은 문제로 나누어(분할) 해결(정복)하는 알고리즘이다. 조금 더 구체적으로 적자면 분할(Divide): 복잡한 문제를 더 작고 관리하기 쉬운 부분 문제로 분해하여 정복(Conquer): 이 부분 문제들을 해결한 후 결합(Combine): 이들의 해결 결과를 결합하여 원래 문제의 해답을 찾는다. 예를 들자면 정렬 알고리즘 중 병합정렬과 퀵 정렬이 이에 해당하는데, 각 구현방식은 아래 글에 설명되어 있다. [Java+Python]병합 정렬(Merge Sort) [Java+Python]병합 정렬(Merge Sort) 으로 구현한 다른 정렬: [Java+Python]삽입 정렬(Insert Sort) [Java+Python]버블 정렬(Bub..
목차 문제 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 일부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 위의 예의 경우, 첫째 줄에는 1을 제외한 나머지 2부터 9까지의 숫자들이 이미 나타나 있으므로 첫째 줄 빈칸에는 1이 들어가야 한다. 또한 위쪽 가운데 위치한 3x3 정사각형..
문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27,...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3) ×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 $N=3^{k}$이며, 이때 1 ≤ k < 8이다. 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 풀이 오랜 시간이 걸려서 풀었지만 풀어놓고도 잘 이해가 가지 않는 문제이..
문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1) 층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에..
으로 구현한 다른 정렬: [Java+Python]삽입 정렬(Insert Sort) [Java+Python]버블 정렬(Bubble Sort) [Java+Python]선택 정렬(Selection Sort) [Java+Python]병합 정렬(Merge Sort) [Java+Python]퀵 정렬(Quick Sort) [Java+Python]카운팅 정렬(Counting Sort) 힙 정렬은 말 그대로 힙 자료구조를 이용해 정렬하는 방식을 말한다. 왜 힙 트리가 아니라 힙 자료구조라고 하냐면.. 힙 트리는 구현될 때 주로 배열을 이용하기 때문이다. 힙 트리에 대해선 지난번에 정리해둔 글이 있으니 참고. 2022.09.28 - [Development/Java] - [Java]자료구조 - 힙 트리(Heap Tree) ..
문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1) 층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에..
- Total
- Today
- Yesterday
- Python
- 백준
- 세계일주
- 자바
- 면접 준비
- 맛집
- 세모
- 칼이사
- 파이썬
- 알고리즘
- Algorithm
- 동적계획법
- 여행
- 스프링
- 유럽여행
- 지지
- Backjoon
- 기술면접
- spring
- BOJ
- 리스트
- 유럽
- 세계여행
- 스트림
- 중남미
- a6000
- java
- RX100M5
- 남미
- 야경
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |