본문 바로가기

백준 알고리즘 풀이/Python

(4)
[백준] 1024번 수열의 합 - 시그마 합 공식, 이진탐색 알고리즘(Python) https://www.acmicpc.net/problem/1024 1024번: 수열의 합 첫째 줄에 N과 L이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이고, L은 2보다 크거나 같고, 100보다 작거나 같은 자연수이다. www.acmicpc.net 사용 알고리즘 수열의 합공식을 이용해서 리스트를 구하는 조건문을 작성하였다. 풀이 합이 N이면서 길이가 최소 L인 음이 아닌 정수 리스트의 시작 값을 k라고 한다면, 리스트는 항상 [k k+1 k+2 ... k+m](m은 L-1보다 큰 임의의 정수)의 값을 가질 것이다. 따라서 우리는 아래의 식을 만족하는 k, m값을 찾아주면 된다. 이때, 우리는 등차수열의 유한합 공식이 다음과 같다는 것을 알고있다. 위 공식을 식에 대입시켜 보자. 따..
[백준] 1011번 Fly me to the Alpha Centauri - 수학(Python) https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 사용 알고리즘 사실 사용 알고리즘이라 할 것이 없다. 그냥 수학적 패턴을 찾으면 되는 문제이다. 풀이 우선 1 부터 차례대로 계산 과정을 써보았다. INPUT HOW TO OUTPUT 1 1' 1 2 1 + 1 2 3 1+1+1 3 4 1+2+1 3 5 1+2+1+1 4 6 1+2+2+1 4 7 1+2+2+1+1 5 8 1+2+2+2+1 5 9 1+2+..
[백준] 2606번 바이러스 - DFS와 BFS(Python) https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 사용 알고리즘 그래프 탐색을 할 때 사용되는 알고리즘은 DFS(깊이 우선 탐색법)와 BFS(너비 우선 탐색법)이다. DFS(깊이 우선 탐색법) 그래프 탐색 방식의 일종으로, 트리/그래프의 갈림길에서 막다른 길이 나올 때 까지 최대한 깊숙히 들어가서 확인한 뒤 다시 돌아가 다른 루트를 탐색하는 방식이다. BFS(너비 우선 탐색법) 그래프 탐색 방식의 일종으로, 트리/그래프의 갈림길에 연결되어 있는 모든 ..
[백준] 1850번 최대공약수 - 유클리드 호제법(Python) https://www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 최대공약수를 구하는 간단한 문제이다. 주의할 점은 주어지는 입력값의 최대 공약수를 구하는 것이 아닌 입력값 만큼의 1로 구성된 숫자의 최대 공약수를 구해야 한다는 것이다. 사용 알고리즘 최대 공약수를 구할 때 사용되는 알고리즘은 유클리드 호제법이다. 유클리드 호제법 두 양의 정수 a,b에 대하여 a = bq + r (q는 몫, r은 나머지이며 0 1 예제2 ) 입력값 3, 6..