본문 바로가기
반응형

Algorithm7

[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.
반응형