본문 바로가기

분류 전체보기590

[C/C++] 프로젝트 오일러 #100 Arranged Probability(수학) 프로젝트 오일러 100번째 문제네요. Project Euler #100: Arranged Probability 문제는 확률과 이항 계수를 기반으로 한 수학적 사고를 요구하는 문제입니다. 이 문제의 주요 목표는 특수한 조건을 만족하는 정수 쌍을 찾는 것입니다. 문제를 이해하기 위해 배경과 개념을 먼저 살펴보겠습니다.문제는 다음과 같이 설정됩니다. 특정 “파란색”과 “총 디스크”의 개수가 주어졌을 때, 한 번 무작위로 디스크를 두 개 뽑는 경우, 둘 다 파란색일 확률이 정확히 1/2가 되는 조건을 만족하도록 하는 디스크의 배치를 찾는 것이 목적입니다.우선 기본적인 수식으로 표현해 봅시다.• 파란색 디스크의 개수를 b, 총 디스크의 개수를 n이라고 하겠습니다.• 두 개의 디스크를 뽑는 확률에서 둘 다 파란색일.. 2024. 11. 21.
[C/C++] 프로젝트 오일러 #99 Largest Exponential(수학) 문제는 여러 쌍의 숫자로 이루어진 데이터에서 각 쌍이 \(a^b\) 형태로 표현될 때, 가장 큰 값을 가지는 쌍의 위치를 찾는 것입니다. 여기서 a와 b는 양의 정수입니다.예를 들어, 다음과 같은 쌍이 있다고 가정합니다:1. \(2^{11}\)2. \(3^7\)3. \(6^3\)각각의 값을 계산하면:• \( 2^{11} = 2048 \)• \( 3^7 = 2187 \)• \( 6^3 = 216 \)이 중에서 가장 큰 값은 2187이므로, 두 번째 쌍 (3, 7)이 답이 됩니다. 이 경우 결과는 2번째 줄을 나타냅니다.문제가 간단하게 보여도 제곱해야 하는 수가 크면, 실제 값의 크기는 컴퓨터로 계산하기 힘듭니다. \( 632382^{518061} \gt 519432^{525806} \) 의 경우와 같이 밑.. 2024. 11. 21.
[C/C++] 프로젝트 오일러 #98 Anagramic Squares(완전 탐색) Project Euler 문제 98번은 “아나그램 수의 쌍”에 관한 문제입니다. 문제는 다음과 같은 상황을 제시합니다.먼저, 아나그램이란 한 단어의 문자들을 재배열하여 다른 단어를 형성하는 것을 말합니다. 예를 들어, “LISTEN”과 “SILENT”은 서로 아나그램입니다. 이 문제에서는 단어 목록이 제공되며, 이 목록에서 아나그램 쌍을 찾아야 합니다.여기에서 한 걸음 더 나아가, 아나그램 쌍에 특정 조건을 부과합니다. 각 아나그램 단어 쌍에 대해, 이를 숫자로 매핑하여 정사각형 수가 되도록 만들어야 합니다. 예를 들어, “CARE”와 “RACE”가 아나그램이라면, “CARE”를 숫자 1296으로, “RACE”를 숫자 9216으로 매핑했을 때 둘 다 정사각형 수라면 유효한 쌍이 됩니다.문제는 주어진 단어.. 2024. 11. 20.
4. 파이썬을 이용한 데이터 과학 소개(part 2) 3. Pandas Pandas는 Python에서 데이터를 분석하고 조작하기 위한 강력한 라이브러리로, 행과 열로 이루어진 구조화된 데이터를 처리하는 데 최적화되어 있습니다. 주요 데이터 구조로는 1차원 데이터를 다루는 Series와 2차원 테이블 형태의 데이터를 다루는 DataFrame이 있습니다. 이 데이터 구조는 데이터베이스의 테이블이나 스프레드시트와 유사해 직관적으로 사용할 수 있습니다. Pandas는 다양한 데이터 포맷을 지원하며, CSV, Excel, SQL, JSON 등 여러 소스의 데이터를 손쉽게 읽고 쓸 수 있습니다. 또한 데이터를 정렬하거나 필터링할 수 있는 인덱스 기능과 그룹화, 피벗 테이블 생성, 데이터 병합과 같은 고급 데이터 조작 기능을 제공합니다. 결측치 처리나 중복 제거 같은 .. 2024. 11. 20.
[C/C++] 프로젝트 오일러 #97 Large Non-Mersenne Prime(수학) 메르센 소수(Mersenne Prime)는 아주 특별한 형태의 소수입니다. 소수란 1과 자기 자신 외에 다른 약수가 없는 숫자를 말하는데, 메르센 소수는 그 중에서도 다음과 같은 형태를 가진 숫자들입니다:\[ M_p = 2^p - 1 \]여기서 \(p\) 는 소수(Prime number)여야 합니다. 간단히 말해, 2의 거듭제곱에서 1을 뺀 숫자들 중에서 소수인 것을 메르센 소수라고 부릅니다.   \(p = 2\)라면, 메르센 소수는 \( M_2 = 2^2 - 1 = 4 - 1 = 3 \) 가 되어, 3은 가장 작은 메르센 소수가 됩니다.  \(p = 3\) 라면, 메르센 소수는 \( M_3 = 2^3 - 1 = 8 - 1 = 7 \) 가 됩니다.그러나 모든 \(  2^p - 1 \)이 소수가 되는 것은.. 2024. 11. 19.
[C/C++] 프로젝트 오일러 #96 Su Doku(백트래킹) Project Euler의 96번 문제는 스도쿠 퍼즐을 해결하는 알고리즘 설계를 다루고 있습니다. 스도쿠는 9x9 격자로 이루어진 퍼즐 게임으로, 각 행, 열, 그리고 3x3의 작은 박스에 1부터 9까지의 숫자를 중복 없이 채워 넣는 것이 목표입니다. 이 문제는 단순히 하나의 스도쿠를 푸는 것이 아니라, 여러 개의 스도쿠 퍼즐을 입력받아 각각을 해결한 뒤, 각 퍼즐의 해답에서 첫 번째 세 숫자를 추출하여 합산하는 과제를 제시하고 있습니다.프로그래머의 관점에서 이 문제를 접하면, 가장 먼저 고려해야 할 점은 스도쿠 퍼즐을 효율적으로 해결할 수 있는 알고리즘입니다. 일반적으로 사람이 스도쿠를 풀 때는 규칙을 기반으로 논리적 접근을 활용합니다. 특정 위치에 들어갈 수 있는 숫자의 후보를 좁혀가는 과정을 반복하.. 2024. 11. 18.
728x90