본문 바로가기

728x90

분할정복

[백준알고리즘] 11729번: 하노이 탑 이동 순서 -Python [백준알고리즘] 11729번: 하노이 탑 이동 순서 -Python https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5 www.acmicpc.net 오랜만에 하노이탑 문제를 푼 것 같다. 분할 정복 문제.. 더보기
[백준알고리즘] 11728번: 배열 합치기 -Python [백준알고리즘] 11728번: 배열 합치기 -Python https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다. www.acmicpc.net 그냥 서로 다른 두 배열을 정렬된 상태로 출력하는 문제이다. 아래처럼도 풀어봤고, 각각 정렬된 두 배열에서 작은 값부터 하나씩 비교해서 결과를 출력하는 코드도 작성했으나 아래의 코드가 조금 더 빨랐고 간단해 보여서 그냥 잔뜩 파이썬스러운 코드만 올렸다. 1 2 3 4 5 6 import .. 더보기
[백준알고리즘] 1629번: 곱셈 -Java [백준알고리즘] 1629번: 곱셈 -Java https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 왜 틀리지 왜 틀리지... 했는데 자료형 때문이었다... 찍어보니 초과해서 -값들이 우수수수 나오는 걸 보고 금방 해결했다 ㅜㅜ 왜 생각하지 못했을까 아무튼 이 문제는 분할정복 문제이다. 이 문제를 풀기 위해서는 "빠른 모듈로 거듭제곱 법"을 알아야 한다. 간단하게 설명하자면, 정수 A를 B로 나눈 나머지 A%B는 A mod B로 표현이 가능하다. 이때, (A^2) mod B = (A*A) mod B = ((A mod.. 더보기
[백준알고리즘] 1780번: 종이의 개수 -Python [백준알고리즘] 1780번: 종이의 개수 -Python https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. 만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다. (1)이 아닌 경우에는 종이를 같은 크기의 9개의 종이로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다. 이와 같이 종이를 잘랐을 때, -1로만 채워진 종이의 개수, 0으 www.acmicpc.net 추가) 이전에 풀었던 문제이지만 한 번 더 풀어봤다. 사실 쓴 코드 중에서 제.. 더보기
[백준알고리즘] 1992번: 쿼드트리-Python [백준알고리즘] 1992번: 쿼드트리-Python https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1≤N ≤64의 범위를 가진다. 두 번째 줄부터는 길이 N 의 문자열이 N 개 들어온다. 각 문자열은 0 또는 1의 숫자로 이루어져 있으며, 영상의 각 점들을 나타낸다. www.acmicpc.net 쿼드 트리에 대해서 잘 몰라서 먼저 찾아보았다. 아래 링크들을 통해서 확인하면 될 것 같다. ...더보기 https://en.wikipedia.org/wiki/Quadtree https://blog.naver.com/namsikie/60127442593 http://pigbra.. 더보기

728x90