문제 : https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 비트값을 압축하는 문제이다. x, y축 길이가 항상 같고, 주변 4칸을 기준으로 압축하기 때문에 범위를 절반씩 줄여 가며 압축한다. #include using namespace std; int n; string m[64]; string zip(int a, int b, int scale){ char c = m[a][b]; if(scale == 1) return string(1,..
문제 : https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 해당 문제는 비의 높이에 따라 달라지는 connected component 중 갯수가 최대가 되는 경우를 구하는 문제이다. 강의에서는 arr를 따로 하나 더 구현하지는 않았지만, 본인은 safeArr이라는 배열을 하나 더 만들어서 문제를 해결했다. 배열을 하나 더 만들면 메모리 측면에서 손해가 있지만, 문제의 범위가 최대 100*100이기 때문에 큰 문제는 없을 듯 하다. #include int..
문제 : https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 이 문제 역시 로직 자체는 간단하다. 입력받은 수로 영원히 나누어 떨어지지 않는 경우에 대해서는 아무 언급이 없으므로 항상 나누어 떨어진다고 취급할 수 있고, 따라서 1을 무한히 늘려 가며 나누어 떨어지는 순간 해당 숫자의 길이를 출력하면 된다. 1을 늘리는 방법에는 여러 가지가 있겠지만, 가장 간단한 방법은 원래 수 * 10 +1을 하면 된다. 하지만 숫자의 표현 범위에는 한계가 있으므로, 아무런 처리 과정 없이 1을 계속 늘리..
문제 : https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 이 문제의 로직 자체는 매우 간단한 반복 연산이지만, 단순히 for문을 사용해 해결하려고 하면 최대 21억 회의 반복이 필요해 시간 초과를 유의해야 하는 문제이다. #include using namespace std; int main() { long long a, b, c; cin >> a >> b >> c; for(int x = 0; x > b >> c; cout
문제 : https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 의상을 입을 수 있는 경우의 수를 구하는 문제이다. 최소 한 개 이상의 의상을 입어야 하며, 같은 종류의 의상은 동시에 입을 수 없다. 상의가 3벌 있다고 가정하자. 상의를 입을 수 있는 경우의 수는 총 몇 가지일까? '3벌을 각각 입는 경우의 수 + 입지 않는 경우의 수 = 4가지'이다. 모든 ..