알고리즘 - Python / 백준 - 17298번 : 오큰수
17298번: 오큰수 (acmicpc.net) 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 풀이 수열이 주어지고 , 그 숫자보다 오른쪽에서 큰 숫자들 중 가장 먼저 나오는 수가 오큰수 이다. 주어진 수열에 대하여 오큰수(An)을 찾으면 되는 문제다. 스택을 통해서 구현할 수 있고 , 다음과 같은 방식으로 해결하면 된다. 1. 스택의 TOP과 비교해 다음 수가 크다면 , POP 하고 그다음수를 오큰수로 정함 2. 스택의 TOP과 비교해 다음 수가 작다면 , 스택 위에 추가함 1번의 경우 스택이 빌 때까지 진행하고 , 2..
더보기
알고리즘 - Python / 백준 - 13926번 : gcd(n, k) = 1
13926번: gcd(n, k) = 1 (acmicpc.net) 13926번: gcd(n, k) = 1 자연수 n이 주어졌을 때, gcd(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 자연수 n이 주어졌을 때 , n보다 작고 gcd(n,k) = 1을 만족하는 자연수 k의 개수를 구하는 문제다. gcd(a,b)는 a와 b의 최대공약수를 의미하고 이 최대 공약수가 1이라는 뜻은 두 수가 서로소라는 뜻이다. 그러면 어떠한 수 n과 1 ~ n 까지의 k가 서로소인지 아닌지 판별해야 한다. 이때 , 다음과 같은 과정을 통해 알아낼 수 있다. 1. 어떠한 수 n을 소인수 분해 한다. 2. n을 소인수 분해한 수들이 p1,p2,p3....
더보기