본문 바로가기

Programming456

[C/C++] 프로젝트 오일러 #32 : 팬디지털 곱 프로젝트 오일러 #32 문제는 어려움 정도가 5%라 상당히 난이도가 낮은 문제네요. 팬디지털 숫자란 특정 범위의 모든 숫자를 한 번씩만 사용하여 구성된 숫자입니다. 예를 들어, 1부터 9까지의 숫자를 모두 한 번씩 포함한 조합(예: 123456789, 391867254 등)은 팬디지털이라고 부릅니다. 이 문제에서는 1부터 9까지의 숫자를 정확히 한 번씩만 사용해야 한다는 조건이 주어집니다.문제의 목표는 1부터 9까지의 숫자를 사용해 \(a \times b = c\) 형태의 곱셈식을 만들고, a, b, c를 모두 이어 붙였을 때 1부터 9까지의 모든 숫자를 포함하도록 하는 조합을 찾는 것입니다. 예를 들어, \(39 \times 186 = 7254\)는 39, 186, 7254를 합쳐 391867254라는.. 2015. 4. 13.
프로젝트 오일러 사이트 친구 등록 프로젝트 오일러 사이트에는 친구를 등록할 수 있는 것이 있네요.등록된 친구의 경우, 현재 진행정도를 알아볼 수 있지만, 커뮤니티도 없고요. 아쉬운 점들이 꽤 많이 있지만,... 저를 친구로 등록할 수 있는 키를 올립니다.필요하신 분 등록해주세요. ^^ 제 친구 키 : 714246_14c0fa3eb63335b3dc6b8ef5624fd4d0 2015. 4. 5.
[C/C++] 프로젝트 오일러 #31 : 코인들의 합 영국에는 아래와 같은 동전 단위가 있습니다:• 1p, 2p, 5p, 10p, 20p, 50p, 1파운드(100p), 2파운드(200p)목표는 200펜스(2파운드)를 만들기 위해, 위 동전들을 활용한 서로 다른 조합의 수를 찾는 것입니다.조건:1. 동전은 필요한 만큼 반복적으로 사용할 수 있습니다.2. 순서는 중요하지 않습니다. (즉, {1p, 2p}는 {2p, 1p}와 동일한 조합으로 간주됩니다.)3. 중복된 조합을 제거한 고유한 조합의 수를 구해야 합니다. 이번문제는 재귀 함수를 만들어서 프로그램을 작성했습니다. 예를 들어서 200 파운드를 계산하기 위해서 첫번째 가장 큰 단위의 코인을 쓸 것인지부터 몇개를 쓸것인지 결정하여서 나머지 돈에 대해서 그 다음 단위의 코인을 이용하여 경우의 수를 따졌습니다... 2015. 3. 30.
[C/C++] 프로젝트 오일러 #30 : 각 자릿수의 5제곱의 합 Project Euler 문제 #30은 각 자리의 숫자를 다섯 번째 거듭제곱한 값의 합이 자신과 같은 숫자들을 찾는 문제입니다. 문제에서는 한 자리 숫자는 조건을 만족할 수 없으므로 최소 두 자리 이상의 숫자부터 탐색해야 합니다.이를 해결하기 위해, 특정 숫자의 각 자리 숫자를 다섯 번째 거듭제곱한 값들의 합을 계산하고, 이 합이 원래 숫자와 동일한 경우를 찾습니다. 조건을 만족하는 모든 숫자를 구한 후, 이 숫자들의 합을 계산하는 것이 문제의 목표입니다.효율적인 계산을 위해 탐색 범위를 설정해야 하며, 숫자의 자리수가 증가함에 따라 다섯 번째 거듭제곱의 합이 해당 숫자를 초과하지 않는 범위를 고려하여 상한선을 정합니다. 이를 통해 필요한 계산을 제한하여 문제를 해결합니다. 문제 자체의 난이도는 그리 어.. 2015. 3. 30.
[C/C++] 프로젝트 오일러 #29 서로 다른 n제곱 개수 이번 문제는 중복을 처리하는 문제이기는 하지만,숫자의 범위가 큰 까닭에, big integer를 써서 처리를 하든지, 아니면 무언가 다른 방도를 생각해서 해주어야 합니다. 서로 다른 n제곱 갯수를 구하기 위해서는 다음과 같은 생각을 좀 해주어야 합니다. 서로 다른, a, b (b > a) 에 대하여, \(a^m\), \(b^n\)이 갈은 수가 되기 위해서는 반드시, b는 a의 제곱승이어야 합니다.  그렇지 않다면, 같은 숫자가 나올 수가 없습니다. 이것을 토대로 해서 프로그램을 작성해보았습니다. 전반부 프로그램은 제곱수가 아닌 a 에 대하여 \(a^k\)을 모두 체크하고, 그 때의 연산 결과를 1승만 가능한 경우, 2승까지 가능한 경우, 3승까지 가능한 경우 등등으로 나누어서 그 출력값을 미리 v란 배열.. 2015. 3. 7.
[Python] 정올 #1262 : 두개의 큰정수 곱하기 사실 C/C++에서는 큰정수(BigInt) 라이브러리를 기본으로 제공하지 않지만, 파이썬을 이용하면 비록 스크립트 언어이지만, 오히려 더 빠르게 결과를 얻을 수 있습니다. 왜냐하면, 아무리 잘 BigInt 프로그램을 만들어도 파이썬 라이브러리보다 더 좋게 만들기는 힘드니까요. 파이썬으로 풀어본 정올 #1262 문제입니다. while True: a = raw_input() num = a.split(' ') if int(num[0]) == 0 : break print int(num[0])*int(num[1]) 2015. 3. 4.
728x90