본문 바로가기
반응형

Programming400

[C/C++] 백준 #2447 별 찍기 - 10(재귀 함수) 별찍기 프로그램을 작성하는 프로그래밍 언어를 배울 때, 초기에 자주 나오는 문제입니다. 일반적으로 직각삼각형, 이등변삼각형을 많이 찍습니다. 이 문제들은 피라미드 찍기라는 이름으로도 많이 나옵니다. 조금 더 가면 다이아몬드 형태도 찍을 수 있게 됩니다. 일반적인 별 찍기 문제는 난이도면에서 상당히 낮습니다. 이번 문제는 난이도가 높은 별 찍기에 속합니다. 단순한 반복문 중복으로는 해결하기 어렵습니다. https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별.. 2023. 5. 6.
[C/C++] 백준 #2437 저울(탐욕 알고리즘) 이번 문제는 탐욕 알고리즘을 이용하여 풀면 됩니다. https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 우리에게는 천칭저울로 알려진 무게를 재는 도구입니다. 한쪽에는 무게를 알고지 하는 물체를 다른 한쪽에는 추를 놓음으로써 평형을 이루는 지점을 찾아서 물체의 무게를 알 수 있습니다. 저울추가 N 종류 주어지면, 우리는 이 저울추 N개를 가지고 만들 수 있는 숫자들을 생각하면 됩니다. 어떻게 보면 코인 문제와 비슷한데, 코인 문제는 경우의 수를 따지지만, 여기.. 2023. 5. 2.
[C/C++] 백준 #2436 공약수(수학) 보통 두 수가 주어지면, 최대공약수와 최소공배수를 구하는 것을 하지만, 이 문제는 최대공약수와 최소공배수가 주어지면, 그러한 최대공약수와 최소공배수를 가지는 두 수를 구하는 문제입니다. https://www.acmicpc.net/problem/2436 2436번: 공약수 첫째 줄에 두 개의 자연수가 빈칸을 사이에 두고 주어진다. 첫 번째 수는 어떤 두 개의 자연수의 최대공약수이고, 두 번째 수는 그 자연수들의 최소공배수이다. 입력되는 두 자연수는 2 이상 100,0 www.acmicpc.net 두 수 \(a, ~ b\)가 주어지면, 두 수의 최대 공약수가 \(g\)일 때, 우리는 다음과 같은 식을 얻을 수 있습니다. \[ a = ga', ~ b = gb', ~ lcm = ga' b' \] 최소공배수를 최.. 2023. 5. 2.
[C/C++] 백준 #2417 정수 제곱근(수학) #2417 문제는 Silver 4로 등급이 설정되어 있지만, 그보다는 더 쉬운 문제로 보입니다. https://www.acmicpc.net/problem/2417 2417번: 정수 제곱근 정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오. www.acmicpc.net 제 경우에는 sqrt() 함수를 이용해서 제곱근을 구하고, 제곱근 정수부터 하나씩 올려가면서 제곱한 결과가 n 이상이 되면, 그 값을 출력했습니다. 딱히 알고리즘이라고 할 것은 없습니다. 제가 작성한 소스입니다. //------------------------------------------------ // baekjoon #2417 // - by Aubrey Choi // - created at 2019-11-11 //.. 2023. 4. 30.
[C/C++] 백준 #2410 2의 멱수의 합(동적 계획법) #2410 문제는 점화식을 잘 세우면 동적 계획법을 이용해서 풀 수 있습니다. 하지만 늘 그렇듯이 점화식을 만드는 과정이 쉽지만은 않습니다. https://www.acmicpc.net/problem/2410 2410번: 2의 멱수의 합 첫째 줄에 경우의 수를 출력한다. 답이 커질 수 있으므로 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 어떤 수가 주어지면, 그 수를 2의 멱승(1, 2, 4, 8, ...과 같이 \(2^k\)으로 표현되는 수)의 합으로 표시하는 경우의 수를 구하는 것입니다. 2의 멱승을 하니 조금 이상할 수 있지만, 이진수 표현법이 기초가 됩니다. 홀수가 주어졌다고 하죠. 예를 들면 9가 주어졌습니다. 8 + 1 4 + 4 + 1 4 + 2 + 2 +.. 2023. 4. 29.
[Python] 백준 #2407 조합(수학) 이번 문제는 \(_nC_r\) 조합을 구하라는 것입니다. 조합을 구하는 알고리즘은 수학을 알고 있다면 손쉽게 할 수 있습니다. 단지 문제는 숫자가 커지기 때문에 BigInteger 자료형을 제공하는 파이썬이나 자바를 이용하시는 것이 편합니다. https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 저는 파이썬을 이용했습니다. \[ _nC_r = \frac{n!}{(n-r)! r!} \] 이것을 그대로 구현하였습니다. 제가 작성한 소스입니다. """ // baekjoon #2407 // - by Aubrey Choi // - created at 2019-06-27 "".. 2023. 4. 29.
728x90