본문 바로가기

수학23

[백준 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.
[백준 11564] 점프왕 최준민 (C++) https://www.acmicpc.net/problem/11564문제준민이는 점프를 좋아한다. 창영이는 그의 점프력을 시험하기 위해 수직선을 하나 놓고, a 이상 b 이하의 모든 정수 좌표에 맛있는 초콜릿을 놓았다. 수직선은 아래의 그림과 같이 나타낼 수 있다.준민이는 항상 0에서 시작하며, 준민이의 점프력이 k 라면 한 번 점프를 하여 -k 나 +k 좌표에 도달한다. 준민이는 항상 점프 거리가 k가 되도록 점프를 한다. 만약 0의 위치에 초콜릿이 있다면, 준민이는 점프하기 전에 초콜릿을 일단 먹고 시작한다.초콜릿 중독자인 준민이는 모든 초콜릿을 얻기 위해 수직선에 올라섰다. 또한 준민이는 아침에 밥을 아주 많이 먹었기 때문에 무한번 점프 할 수 있다. 여러분이 해야하는 일은, k의 점프력을 가진 준민.. 2024. 10. 10.
[백준 4134] 다음 소수 (C++) https://www.acmicpc.net/problem/4134문제정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오. 입력첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. 출력각각의 테스트 케이스에 대해서 n보다 크거나 같은 소수 중 가장 작은 소수를 한 줄에 하나씩 출력한다. 문제 풀이브루트포스 문제. n부터 시작하여 1씩 더해가며 해당 수가 소수인지 확인한다. 하나의 수 i에 대해 에라토스테네스의 체처럼 2부터 sqrt(i)까지 반복문을 돌려 그 수가 i로 나누어 떨어지는지 확인해주면 된다. 나누어 떨어지면 소수가 아니므로 다음 수를 탐색하고, sqrt(i)까지 탐색.. 2024. 9. 14.
[백준 1183] 약속 (C++) https://www.acmicpc.net/problem/1183문제마법사 N명이 머글 문화를 이해하기 위해 머글과 약속을 잡았다. 각 마법사는 한 명의 머글을 만날 예정이다. 하지만, 마법사는 약속 시간보다 빨리 또는 늦게 도착할 수 있기 때문에 고민에 빠졌다. 결국 기다리는 시간을 최소화 하기 위해 모든 약속 시간을 T씩 미루려고 한다. 기다리는 시간은 먼저 도착한 사람이 늦게 도착한 사람이 도착할 때까지 기다리는 시간을 의미한다.마법사의 약속 시간은 A1, A2, ..., AN이고, 도착 시간은 B1, B2, ..., BN이다. 약속 시간을 T만큼 미루면, 기다리는 시간의 합은 |Ai + T - Bi|의 합과 같다. 기다리는 시간의 합이 최소가 되는 서로 다른 정수 T의 개수를 구해보자.입력첫째 줄.. 2024. 9. 11.
[백준 28702] FizzBuzz (C++) 문제FizzBuzz 문제는 𝑖=1,2,⋯ 에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다. 𝑖가 3의 배수이면서 5의 배수이면 “FizzBuzz”를 출력합니다. 𝑖가 3의 배수이지만 5의 배수가 아니면 “Fizz”를 출력합니다. 𝑖가 3의 배수가 아니지만 5의 배수이면 “Buzz”를 출력합니다. 𝑖가 3의 배수도 아니고 5의 배수도 아닌 경우 𝑖를 그대로 출력합니다.FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 주어집니다. 이때, 이 세 문자열 다음에 올 문자열은 무엇일까요?입력 FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 한 줄에 하나씩 주어집니다. 각 문자열의 길이는 8$8$ 이하입니다. 입력이 항상 FizzBuzz 문제에서 연속으로 출력된.. 2024. 9. 10.
[백준 17103] 골드바흐 파티션 (C++) https://www.acmicpc.net/problem/17103문제골드바흐의 추측: 2보다 큰 짝수는 두 소수의 합으로 나타낼 수 있다.짝수 N을 두 소수의 합으로 나타내는 표현을 골드바흐 파티션이라고 한다. 짝수 N이 주어졌을 때, 골드바흐 파티션의 개수를 구해보자. 두 소수의 순서만 다른 것은 같은 파티션이다. 입력첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2  출력각각의 테스트 케이스마다 골드바흐 파티션의 수를 출력한다. 문제 풀이에라토스테네스의 체를 이용한 문제. 에라토스테네스의 체를 이용하여 소수를 구한다. N을 두 소수의 합으로 나타내는 순서쌍 개수를 구해야 하므로, set에 모든 소수를 저장한.. 2024. 9. 8.
[백준 1037] 약수 (C++) https://www.acmicpc.net/problem/1037문제양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오. 입력첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다. 출력첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다. 문제 풀이수학 문제.어떤 수 A가 N의 약수이려면 N은 A로 나누어떨어져야 한다. 나누어떨어지면 나머지가 생기지 않으므로 N/A 역시 약수가 된다.따라서 약수를 정렬한.. 2024. 9. 1.