본문 바로가기
반응형

전체 글16

[Python] 백준 9020번 '골드바흐의 추측' 알고리즘 -1 문제 골드바흐의 추측 - '2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다' 4 이상의 짝수를 입력받고, 그 짝수를 두 소수의 합으로 출력하는 알고리즘을 구현하시오. 만약 골드바흐 파티션(하나의 짝수를 두 소수의 합으로 나타내는 표현)이 여러개인 경우, 두 소수의 차이가 가장 작은 파티션을 출력하시오 초기 idea 문제에서 4이상 10000 이하의 짝수를 입력받으므로, 10000 이하의 소수로 구성된 리스트를 생성한다. 이를 위해 소수인지 아닌지를 판별할 수 있는 함수를 선언한다. 앞서 생성한 소수 리스트내에서 이중 반복문을 활용하여 입력받은 짝수에 대한 파티션을 반환하는 함수를 선언한다. 만약 파티션이 여러개인 경우, 문제의 조건에 따라 두 소수의 차이가 가장 작은 파티션을 반환한다. 한계 및.. 2022. 8. 4.
[Python] 백준 1024번 '수열의 합' 알고리즘 문제 N과 L이 주어질 때, 합이 N이면서, 길이가 적어도 L인 가장 짧은 연속된 음이 아닌 정수 리스트를 구하는 프로그램을 작성하시오. 초기 idea '수학적 관계식을 통한 프로그램 구현' 문제가 주어진 수열의 합을 구하는 것이 아니라, 합과 수열을 구성하는 수의 개수를 통해 수열을 출력하는 것이었다. 먼저, 수학문제를 풀듯이 수열의 합(N)과 수의 개수(L) 그리고 각 수의 수학적 관계를 알아보았다. 길이가 L로 고정된 경우, 어렵지 않게 수학적 관계를 알 수 있었고, 이를 프로그램화하는 것은 어렵지 않았다. 하지만 문제는 길이가 적어도 L인 가장 짧은 리스트, 즉, 길이가 L보다 클 수도 있다는 점이었다. 기존의 방법(수학적 관계를 통한 알고리즘 구현)을 살리면서, 이를 프로그램화 하는데 꽤 많은 .. 2022. 8. 1.
스도쿠 풀이 알고리즘 (Back tracking method x, 초보자도 쉽게 따라할 수 있는 풀이) 우연히 스도쿠 풀이 알고리즘에 대해 접하게 되었습니다. 저는 전공자도 아니고, 코딩이라고는 관측 데이터를 가시화하거나 수치계산의 맛보기만 봤었던지라.. 얕은 지식으로 프로그램을 구현했음을 미리 알려드립니다. 제가 스도쿠 풀이 알고리즘에 대해서 서치를 하는 과정에서 가장 많이 볼 수 있었던 키워드는 'back tracking' 이었습니다. 아마 이 포스팅을 보시는 분들도 대부분 같을 것이라 생각합니다. back tracking method에 대해서 깊게 알아본 것은 아니지만, 설명 중에 언급되는 생소한 단어들에.. '한번 내가 알고 있는 지식과 기술로 한번 구현해보자! 라는 생각으로 시작했습니다. 처음에 생각했던 방법은 python의 sympy 라이브러리를 활용하여, 스도쿠 빈칸에 미지수를 할당한 뒤, 연.. 2022. 7. 29.
[파이썬] 천문학/우주과학 - 데이터의 중간값(median) - 1 안녕하세요. 오늘은 천문학/우주과학 관측 데이터 처리에 있어서 중간값(median)을 알아보려 합니다. 데이터로부터 정보를 얻는 과정은 그 데이터로부터 정보를 얻는 그 자체에도 의미가 있지만, 그 정보를 어떻게 활용하느냐가 매우 중요합니다. 사실 이 점은 천문학/우주과학뿐만 아니라 데이터를 활용하는 모든 분야에 적용된다고 생각합니다. 데이터로부터 '정보'를 얻을 때, 단일 데이터로부터 정보를 얻기보다는 ('데이터 -> 특정 정보 -> 활용'의 방법) 다수의 데이터로부터 '적합한 처리 과정'을 겪은 후, 정보를 얻는 것이 더 정확한 방법일 것입니다. ('다수의 데이터' -> 적합한 처리 과정 -> 정제된 데이터 -> 활용'의 방법) 특히, 천문학/우주과학에서의 관측 데이터는 관측 당시 기상상황(지상 망원경.. 2022. 2. 15.
[파이썬] numpy, matplotlib를 활용한 천문학/우주과학 데이터 실습 평균값 - 1 안녕하세요. 저번 포스팅에 이어서 fits파일을 직접 활용하여 데이터의 평균(mean)을 계산해보겠습니다. import numpy as np from astropy.io import fits import matplotlib.pyplot as plt 필요한 라이브러리를 불러옵니다. hdulist = fits.open('fits_images_all/image0.fits') hdulist.info() data = hdulist[0].data print(data) 본격적인 실습을 진행하기 전에, 하나의 fits파일을 열어 데이터 프레임과 데이터를 확인합니다. 먼저, 데이터의 크기가 200 x 200 pixel이라는 점에 주목하고, 각 픽셀에 저장된 하나의 값(픽셀값)을 출력하여 확인해봅니다. plt.imshow.. 2022. 2. 12.
[파이썬] numpy, matplotlib를 활용한 천문학/우주과학 데이터 실습 평균값 - 2 안녕하세요! 오늘은 파이썬으로 데이터의 평균(mean)을 계산하는 과정을 담고자 합니다. 천문학/우주과학 분야에서 주로 쓰이는 'fits' 데이터로 실습하기 전에, 간단한 예를 통해 평균을 계산해보겠습니다. 먼저, 파이썬 내장함수만을 이용해 보았습니다. sum()과 len()이라는 내장함수를 활용하여, 평균을 계산해냈습니다. 다음은 앞선 포스팅에서 설명드린 'numpy' 라이브러리를 활용한 평균 계산 방법입니다. np.mean()이라는 함수를 사용하여 더 빠른 결과를 얻을 수 있습니다. 다음은, 여러개의 1차원 배열에서의 평균을 계산하는 방법입니다. 이해를 돕기위해 학생들의 성적으로 예를 들었습니다. 앞선 과정에서 알아보았던 np.mean()을 사용해서 각 배열(한 학생의 성적 모음)의 평균을 계산합니다.. 2022. 2. 11.
[파이썬] 천문학/우주과학 데이터 처리 - 1(fits파일 처리) 1. 프로그래밍에 필요한 라이브러리를 불러옵니다. 1) numpy - 수학, 과학 연산을 위함 2) matplotlib - 배열의 시각화, 그래프화를 위함 3) astropy - 천문학에서 사용되도록 설계됨 2-1) 하나의 데이터(fits)에 대하여, 최대 픽셀값의 인덱스 반환 함수 구현 2-2) 다수의 데이터(fits)에 대하여, 최대 픽셀값의 인덱스 반환 함수 구현 (출력문에 모든 데이터명을 입력해야 하는 단점이 있음) 2-3) 필요한 데이터(fits)에 접근 및 데이터 추출, 최대 픽셀값의 인덱스 반환 모델 구현 (1) 필요한 데이터가 저장된 폴더('fits_images_all')에 접근 (2) 폴더 내에서 필요한 데이터(fits or fit 확장자)만을 추출 (3) 각 데이터들의 최대 픽셀값의 인.. 2022. 2. 6.
반응형