Kyun2Da Blog

알고리즘 블로그

[백준/Python] 1300 K번째 수

알고리즘 - K번째 수

1️⃣ 서론 백준 문제 1300번 K번째 수 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣ 문제 설명 이 문제는 행,열 인덱스가 1부터 시작하는 N * N 배열을 만들어 K번째 수를 찾는 문제입니다. 배열의 원소는 A[i][j] = i * j 입니다. 3️⃣ 풀이 이 문제는 특이하게 이분탐색 으로 해결이 가능합니다. ...

[백준/Python] 2110 공유기 설치

알고리즘 - 공유기 설치

1️⃣ 서론 백준 문제 2110번 공유기 설치 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣ 문제 설명 이 문제는 집 N개가 있다고 하면, 공유기 C개를 적절하게 가장 짧은 거리가 최대가 되게끔 푸는 문제입니다. 3️⃣ 풀이 이 문제는 이분탐색으로 해결할 수 있습니다. 바로 공유기의 가장짧은거리를 탐색하는 방법입니다. ...

[백준/Python] 2749 피보나치 수 3

알고리즘 - 피보나치 수 3

1️⃣서론 백준 문제 2749번 피보나치 수 3 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣문제 설명 이 문제는 피보나치 수를 구하는 문제입니다. 하지만 N의 크기가 1,000,000,000,000,000,000 이하여서 난해했던 문제입니다. 3️⃣풀이 피보나치 수를 구하는 방법은 여러가지가 있는데요 일반적인 피보나...

[백준/Python] 10830 행렬 제곱

알고리즘 - 행렬 제곱

1️⃣서론 백준 문제 10830번 행렬 제곱 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣문제 설명 이 문제는 제목 그대로 행렬A를 B제곱한 결과를 구하는 문제입니다. 3️⃣풀이 첫 째 줄부터 행렬의 크기 N과 A가 주어집니다. 제곱수 에서 분할정복을 쓸 수 있는 이유는 2의 존재 때문입니다. 만약 $A^{8}$ 이라...

[백준/Python] 11401 이항 계수 3

알고리즘 - 이항 계수 3

1️⃣서론 백준 문제 11401번 이항 계수 3 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣문제 설명 이 문제는 이항계수를 구하는 문제입니다. 단, N의 범위가 4,000,000이하라서 일반적인 공식으로는 풀 수 없었습니다. 3️⃣풀이 이 문제는 페르마의 소정리를 활용한 코드, 확장 유클리드 호제법의 두가지 방식으로 풀...

[백준/Python] 1629 곱셈

알고리즘 - 분할 정복

1️⃣서론 백준 문제 1629번 곱셈 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣문제 설명 자연수 A를 B번 곱한 수를 C로 나눴을 때의 나머지를 구하는 방법입니다. 3️⃣풀이 이 문제는 그냥 단순하게 A를 B번 곱하면 수가 매우 커지게 되므로 단순하게 곱해서는 안됩니다. A를 B번 곱했다고 하면 경우의수로 B가 짝수...

[백준/Python] 1992 쿼드트리

알고리즘 - 분할 정복

1️⃣서론 백준 문제 1992번 쿼드트리 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣문제 설명 이 문제는 쿼드트리라는 방법으로 데이터를 압축하여 표현한 결과를 출력하는 문제입니다. 3️⃣풀이 이 문제는 분할정복의 대표적인 문제입니다. 2차원 배열을 압축해 문자열을 만드는 문제입니다. 예제를 보면 가장 큰 사각형을 기...

[백준/Python] 1676 팩토리얼 0의 개수

알고리즘 - 수학

1️⃣서론 백준 문제 1676번 팩토리얼 0의 개수 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣문제 설명 이 문제는 팩토리얼수의 맨 뒤에오는 0의 개수를 구하는 문제입니다. 3️⃣풀이 당연하게도 수의 범위는 500이하의 수이기 때문에 500이하의 팩토리얼을 계산하기에는 수의 범위가 모자랍니다. 그래서 우리는 0을 구하...

[백준/Python] 2004 조합 0의 개수

알고리즘 - 수학

1️⃣서론 백준 문제 2004번 조합 0의 개수 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣문제 설명 이 문제는 조합 nCm의 끝자리 0의 개수를 출력하는 문제입니다. 3️⃣풀이 먼저 단순하게 nCm의 계산공식을 생각해봅시다. nCm = n!/((n-m)!*m!)입니다. 하지만 n과 m의 범위가 <= 2,000,...

[백준/Python] 1931 회의실 배정

알고리즘 - 그리디

1️⃣서론 백준 문제 1931번 회의실배정 입니다. 파이썬(Python)으로 풀었습니다. 출처 2️⃣문제 설명 이 문제는 회의를 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾는 문제입니다. 3️⃣풀이 이 문제는 그리디(greedy) 즉, 탐욕법이라고도 불리는 방법을 사용하는 대표적인 문제입니다. 어떻게 회의를 배...