본문 바로가기

수학29

[백준 32403] 전구 주기 맞추기 (C++) https://www.acmicpc.net/problem/32403문제상필이는 크리스마스트리 장식에 사용하려고 N개의 전구를 구매했다. 이 전구에 전원을 연결하면 즉시 빛나지 않고 일정한 주기로 반짝인다. 주기가 t초인 전구는 전원을 연결하고 t초, 2×t초, 3×t초, ⋯가 지난 시각에 반짝인다.상필이는 모든 전구에 전원을 연결하고 T초가 지난 시각에 모든 전구가 동시에 반짝이게 하고 싶다. 상필이는 전구에 전원을 연결하기 전에, N개의 전구 중 하나를 선택해 그 전구의 주기를 1초만큼 늘리거나 줄일 수 있다. 단, 주기를 1초보다 작아지게 할 수는 없다.전구의 주기를 조절하는 과정을 통해 모든 전구에 전원을 연결하고 T초가 지난 시각에 모든 전구가 동시에 반짝이게 하려면 이 과정을 최소 몇 번 수행해.. 2025. 3. 16.
[백준 1740] 거듭제곱 (C++) https://www.acmicpc.net/problem/1740문제3의 제곱수를 생각하자. 3의 0제곱, 3의 1제곱, 3의 2제곱, ... 은 순서대로 1, 3, 9, 27, ... 이 된다.이를 바탕으로, 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 수를 생각할 수 있다. 예를 들어 30은 27과 3의 합이므로, 이러한 수에 포함된다.한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 N번째로 작은 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. N은 500,000,000,000 이하의 자연수이다. 출력첫째 줄에 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 N번째로 작은 수를 출력한다. 문제 풀이수학 문제. 십진수를 이진수로 변환하는 방법에서 착안하여 문제를.. 2025. 3. 14.
[백준 16969] 차량 번호판 2 (C++) https://www.acmicpc.net/problem/16969문제상도시의 차량 번호판 형식이 주어졌을 때, 가능한 차량 번호판의 개수를 구해보자.번호판에 사용할 수 있는 숫자는 0, 1, 2, ..., 8, 9이다.사용할 수 있는 문자는 a, b, c, d, ..., y, z이다.차량 번호판의 형식은 최대 1,000,000글자이고, c와 d로 이루어진 문자열로 나타낼 수 있다.c는 문자가 위치하는 자리, d는 숫자가 위치하는 자리이다.같은 문자 또는 숫자가 연속해서 2번 나타나면 안 된다.예를 들어, 형식이 "cd"이면, a1, d4, h5, k4 등이 가능하다. 형식이 "dd"인 경우에 01, 10, 34, 69는 가능하지만, 00, 11, 55, 66은 같은 숫자가 2번 연속해서 불가능하다.입력.. 2025. 3. 8.
[백준 13412] 서로소 쌍 (C++) https://www.acmicpc.net/problem/13412문제두 자연수 A, B의 최대공약수를 GCD(A, B)라고 할 때, A와 B가 서로소면 GCD(A, B) = 1이다. 두 자연수 A, B의 최소공배수를 LCM(A, B)라고 할 때, A와 B가 서로소면 LCM(A, B) = A x B이다.어떤 자연수 N이 서로소인 두 자연수 A, B의 최소공배수라고 할 때, A, B로 가능한 숫자 쌍은 여러 개가 있을 수 있다. 예를 들어 N = 30인 경우 30을 최소공배수로 하는 서로소인 두 자연수로 가능한 숫자 쌍은 (1, 30), (2, 15), (3, 10), (5, 6)의 4가지가 있다.자연수 N이 주어질 때 N을 최소공배수로 하는 서로소인 자연수 쌍의 개수를 출력하는 프로그램을 작성하시오. 입.. 2025. 2. 28.
[백준 22353] 헤이카카오 (C++) https://www.acmicpc.net/problem/22353문제일상을 바꾸는 단어, 헤이카카오는 카카오엔터프라이즈의 인공지능 플랫폼 Kakao i에 기반한 인공지능 비서 어플리케이션이다. 헤이카카오를 사용하면 음악 검색, 길 찾기, 외국어 번역 등 다양한 기능들을 말 한 마디로 이용할 수 있다.2020 헤이카카오 연말 결산에 따르면, 헤이카카오가 "고마워", "안녕" 다음으로 많이 들은 말은 "끝말잇기 하자"였다고 한다. 방에서 핸드폰을 만지작거리던 이하도 심심풀이로 헤이카카오와 끝말잇기를 해 보기로 했다.이하는 끝말잇기를 가볍게 여러 판 플레이하고 통계를 냈다. 그 결과 끝말잇기를 한 판 하는 데에는 a분이 걸리며, 현재 자신이 이길 확률은 d%라는 사실을 알게 되었다. 이하는 자신의 승률에 실.. 2025. 1. 21.
[백준 14557] Memory (C++) https://www.acmicpc.net/problem/14557문제모래두지는 어디를 가나 R×C장의 카드를 들고 다닌다. 이 카드들에는, 같은 무늬가 그려진 카드가 정확히 두 장 씩 있다.  카드를 들고 다니는 이유는, 혼자 있을 때 짝 맞추기 게임을 하기 위해서이다. 게임은 다음과 같은 방법으로 진행된다.처음에 카드를 잘 섞은 후 가로 R행, 세로 C열로 카드들을 무늬가 보이지 않게 뒷면으로 잘 배치한다.다음의 행동을 카드가 모두 없어질 때 까지 반복한다.카드를 한 장 정해 뒤집어서 무늬를 본다.나머지 카드를 한 장 정해 뒤집어서 무늬를 본다.두 카드에 그려진 무늬가 같으면, 카드를 두 장 모두 게임에서 제외시킨다. 아니면, 다시 원래대로 뒷면으로 뒤집어 놓는다.게임에서 승리한다!모래두지는, 행동을.. 2025. 1. 12.
[백준 5073] 삼각형과 세 변 (C++) https://www.acmicpc.net/problem/5073문제삼각형의 세 변의 길이가 주어질 때 변의 길이에 따라 다음과 같이 정의한다.Equilateral :  세 변의 길이가 모두 같은 경우Isosceles : 두 변의 길이만 같은 경우Scalene : 세 변의 길이가 모두 다른 경우단 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우에는 "Invalid" 를 출력한다. 예를 들어 6, 3, 2가 이 경우에 해당한다. 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못한다.세 변의 길이가 주어질 때 위 정의에 따른 결과를 출력하시오. 입력각 줄에는 1,000을 넘지 않는 양의 정수 3개가 입력된다. 마지막 줄은 0 0 0이며 이 줄은 계산하지.. 2024. 12. 24.
[백준 17427] 약수의 합 2 (C++) https://www.acmicpc.net/problem/17427문제두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다.자연수 N이 주어졌을 때, g(N)을 구해보자. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력첫째 줄에 g(N)를 출력한다. 문제 풀이수학 문제. f(1) = 1 = 1f(2) = 1 + 2 = 3f(3) = 1 + 3 = 4f(4) = 1 + 2 +.. 2024. 11. 30.
[백준 1059] 좋은 구간 (C++) https://www.acmicpc.net/problem/1059문제정수 집합 S가 주어졌을때, 다음 조건을 만족하는 구간 [A, B]를 좋은 구간이라고 한다.A와 B는 양의 정수이고, A A ≤ x ≤ B를 만족하는 모든 정수 x가 집합 S에 속하지 않는다.집합 S와 n이 주어졌을 때, n을 포함하는 좋은 구간의 개수를 구해보자. 입력첫째 줄에 집합 S의 크기 L이 주어진다. 둘째 줄에는 집합에 포함된 정수가 주어진다. 셋째 줄에는 n이 주어진다. 출력첫째 줄에 n을 포함하는 좋은 구간의 개수를 출력한다. 제한1 ≤ L ≤ 50집합 S에는 중복되는 정수가 없다.집합 S에 포함된 모든 정수는 1보다 크거나 같고, 1,000보다 작거나 같다.1 ≤ n ≤ (집합 S에서 가장 큰 정수)문제 풀이수학 문제. .. 2024. 10. 20.