본문 바로가기

백준14

최대공약수(GCD) 와 최소공배수 (LCM) 최대공약수(GCD : Greatest Common Divisor) 최대공약수는 줄여서 GCD라 불림. 두 수 A,B의 최대공약수 G는 A,B의 공통된 약수 중에서 가장 큰 정수. (약수: N을 나눌수 있는 수) 최대공약수를 빠르게 구하는 방법 - 유클리드 호제법을 사용 GCD(a,b) = GCD(b,r) r이 0이면 그 때 b가 최대 공약수가 된다. ex) GCD(24,8) = GCD(16,8) = GCD(8,0) = 8 최대공약수 구현 재귀함수를 사용한 유클리드 호제법 int gcd(int a, int b){ if(b==0){ return a; } else{ reutnr gcd(b,a%b); } } 세 수의 최대공약수 GCD(a,b,c) = GCD(GCD(a,b),c) N개의 수 도 같은 방식으로 구할.. 2023. 1. 2.
백준 9093번 단어 뒤집기(JAVA) 백준 9093번 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 문제설명 테스트 케이스의 개수를 입력받고, 그 만큼 반복하며 문자열을 입력받는다. 그 후, 단어를 기준으로 뒤집어서 출력하는 프로그램을 작성. 접근 1. 단어 기준이므로 공백을 기준으로 데이터를 쪼개야 할 것같다고 생각을함. 2. 공백을 기준으로 하여 단어별로 뒤집어야하니 am이 입력될 시 ma로 후입선출 LIFO가 일어남. -> Stack을 사용하면 될것 같다고 생각함. .. 2022. 12. 27.
백준 9095번 1,2,3 더하기 (C++) 백준 9095번 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 문제 설명 입력받은 정수들을 1,2,3으로 조합해서 몇가지가 있는지 출력 접근 DP로 접근 1 => 1가지 2 => 2가지 3 => 4가지 디폴트값 코드 #include #include #include #include #include #include #include #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL.. 2021. 6. 2.
백준 20365번 블로그2 (C++) 백준 20365번 https://www.acmicpc.net/problem/20365 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 문제설명 숫자 N을 받고 R,B를 입력받는다 해야할일을 해결한경우 B(파란색) 아닌경우 R(빨간색)으로 페인트로 칠할 때 최소의 값 BBRBRBBR일 때 파란색으로 모두 칠하고 빨간색을 3번 칠하면 총 4번으로 해결가능 접근 1. 페인트로 한번에 칠하기 때문에 연속된 색깔을 하나로 줄여서 배열에 입력 (한번에 칠하기 때문에 BBR, BR같음) ex) BBRBBR 일때 BRBR .. 2021. 4. 23.