boj 14

유클리드 호제법 -2 자바 백준 BOJ 1033 칵테일

이전 글 https://sh1mj1-log.tistory.com/136 에서 계속됩니다. 백준 1033 칵테일 https://www.acmicpc.net/problem/1033 1033번: 칵테일 august14는 세상에서 가장 맛있는 칵테일이다. 이 칵테일을 만드는 정확한 방법은 아직 세상에 공개되지 않았지만, 들어가는 재료 N개는 공개되어 있다. 경근이는 인터넷 검색을 통해서 재료 쌍 N www.acmicpc.net 1. 문제 분석 문제에서는 N-1 개의 비율로 N 개의 재료와 관련된 전체 비율을 알아낼 수 있다고 합니다. 그래프 관점으로 생각하면 사이클이 없는 트리 구조로 이해할 수 있습니다. 그래서 임의의 노드에서 DFS 혹은 BFS 를 진행하면서 정답을 찾으면 됩니다. DFS 과정에서 유클리드 ..

유클리드 호제법 -1 자바 백준 BOJ 1934 1850

유클리드 호제법 유클리드 호제법(Euclidean-algorithm) 은 두 수의 최대 공약수를 구하는 알고리즘입니다. 일반적으로 최대공약수를 구할 때는 소인수분해를 이용하지만 유클리드 호제법을 사용하면 더 간단하게 가능합니다. 유클리드 호제법 원리 먼저 최대 공약수를 구하는 데 사용하는 핵심 연산인 MOD 을 알아야 합니다. 연산 기능 예 MOD 두 값을 나눈 나머지를 구하는 연산 10 MOD 4 = 2 // 10 % 4 = 2 1. 큰 수를 작은 수로 나누는 MOD 연산 수행. 2. 앞 단계에서의 작은 수와 MOD 연산 결과 (나머지값)으로 MOD 연산 수행. 3. 나머지가 0이 되는 순간의 작은 수를 최대 공약수로 선택. 270 과 192 의 최대공약수를 유클리드 호제법으로 구하는 그림을 통해 구체..

오일러 피 자바 백준 BOJ 11689

오일러 피 오일러 피 함수 P[N]는 1부터 N까지 범위의 N과 서로소인 자연수의 개수를 뜻합니다. 실제 오일러 피 함수는 증명과정을 공부해야 완벽히 알 수 있지만 이 포스팅에서는 코딩 테스트에 사용하기 위한 구현 부분만 알아봅니다. 오일러 피 함수의 원리는 에라토스테네스의 체와 비슷합니다. 오일러 피 함수의 원리 1. 구하고자 하는 오일러 피의 범위만큼 배열 초기화 2. 2부터 시작해서 소수일 때(현재 배열의 값과 인덱스가 같으면) 현재 선택된 숫자[K] 의 배수에 해당하는 수를 배열에 끝까지 탐색하며 P[i] = P[i] - P[i]/K 연산을 수행. 이 때 i 는 K의 배수. 3. 배열의 끝까지 2번 과정을 반복하여 오일러 피 함수를 완성. 그림과 예시와 함께 더 자세히 알아봅시다. 1. 구하고자 ..

정수론 소수 구하기 자바 백준 BOJ 1929 1456 1747 1016

정수론 수학에서 정수론은 수의 성질을 공부하는 분야입니다. 실제 코딩테스트에서는 정수론의 분야가 굉장히 방대하기 때문에 가장 많이 등장하는 소수, 오일러 피, 호제법에 관련하여 학습합니다. 소수 소수(prime number) 는 자신보다 작은 2개의 자연수를 곱해서 만들 수 없는 1보다 큰 자연수를 말합니다. 1과 자기 자신 외에 약수가 없는 수입니다. 소수를 구하는 대표적인 방법은 에라토스테네스의 체가 있습니다. 에라토스테네스의 체 1. 구하고자 하는 소수의 범위만큼 1차원 배열 생성. 2. 2부터 시작해서 현재 숫자가 지워지지 않았다면 현재 선택된 숫자의 배수에 해당하는 수를 배열에서 끝까지 탐색하면서 지웁니다. 처음으로 선택된 숫자는 지우지 않습니다. 3. 배열의 끝까지 2를 반복한 후에 배열에서 ..