알고리즘16 [Algorithm] 모듈러 연산(나머지 연산) 알고리즘 문제를 풀다보면 특정 값을 나눈 나머지를 리턴 또는 출력하라는 문제를 종종 볼 수 있다. 이렇게 주어지는 이유는 알고리즘 문제를 푸는 과정에서 결과 값이 매우 커서 오버플로우가 발생하기 떄문에 문제에서 친절하게 자료형 범위 내에서 계산이 되라고 모듈러 연산을 요구한다. 그런데 모듈러 연산을 요구하는 경우 단순히 결과 값에만 모듈러 연산을 수행하면 이미 결과 값은 너무 커져버려서 오버플로우가 발생한 경우이기 때문에 연산 과정 도중에 모듈러 연산을 적용해야 한다. 그렇다면 모듈러 연산을 적용하기 위해선 모듈러 연산 분배 법칙에 대해 알고있어야 한다. 모듈러 연산은 각 피연산자에 모듈러 연산을 적용 후에 계산한 결과에 대해 다시 한번 모듈러 연산을 적용하면 된다. 뺄셈에선 음수가 나오는 것을 방지하기.. Algorithm 2022. 8. 1. [Programmers Level1] 최대공약수와 최소공배수(C++) ※주의※ 저의 풀이가 정답은 아닙니다. 다른 코드가 더 효율적이거나 좋을 수 있습니다. 언제나 다른 사람의 코드는 참고만 하시기 바랍니다. [문제 풀이 사이트] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 설명] 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. [제한 사항] 두 수는 1이상.. PS/Programmers 2022. 7. 20. [Algorithm] 유클리드 호제법 : 최대 공약수와 최소 공배수(C++) 코딩 테스트 문제 중에 최대 공약수, 최소 공배수를 요구하는 문제가 있습니다. 그래서 최대 공약수와 최소 공배수를 구할 때 자주 사용되는 알고리즘인 유클리드 호제법에 대해서 정리해보려고 합니다. 목차 유클리드 호제법이란 3개 이상의 수에 대한 최대 공약수 구하는 법 3개 이상의 수에 대한 최대 공배수 구하는 법 최대 공약수/최소 공배수 구현(C++) 유클리드 호제법이란 두 수의 최대 공약수를 구하는 알고리즘입니다. 유클리드 호제법을 사용하기 위해서는 MOD 연산에 대해서 알아야합니다. MOD 연산이란 ? 두 값을 나눈 나머지를 구하는 연산으로, 큰 수를 작은 수로 나눈 나머지를 구합니다. 그렇다면 유클리드 호제법 예시를 들어보도록 하겠습니다. 예를 들어 1112, 695 두 수의 최대 공약수를 구하고자합.. Algorithm 2022. 7. 20. [C++ 순열과 조합] next_permutation 프로그래머스 Level1의 소수 만들기, Level2의 소수 찾기를 풀면서 next_permutation 함수를 사용했습니다. 사용법에 대해 알고 있지만, 자주 사용되는 함수이기도 해서 정리해보려고 합니다. [순열] 수학에서 말하는 순열은 서로 다른 n개의 원소에서 r개를 뽑아서 한줄로 세우는 경우의 수를 의미합니다. 원소를 한줄로 세우지만, 원소의 조합이 같더라도 순서가 다르면 다른 방법입니다. 예를 들어서 int arr[3] = {1, 2, 3}의 원소들의 순열을 구하면 {1, 2, 3} {1, 3, 2} {2, 1, 3} {2, 3, 1} {3, 1, 2} {3, 2, 1} 총 6가지이며, 원소들의 조합은 같지만 순서가 다르기 때문에 다른 방법으로 보는 것을 알 수 있습니다. [next_permut.. Language/C++ 2022. 7. 12. 이전 1 2 다음