본문 바로가기

수학12

[백준/C,C++] 1049번: 기타줄 www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 풀이 살짝 헷갈리는 문제입니다. 경우를 잘 따져야 하는데요.. 크게 2가지로 나눌 수 있습니다. 패키지 가격보다 낱개 6개의 가격이 더 낮은 경우, 낱개로 모두 구매하는 것이 최소 가격입니다. 하지만 패키지 가격이 낱개 6개의 가격보다 더 낮은 경우가 중요합니다. 어쨌든 필요한 기타 줄이 6개 이상이라면 그만큼은 무조건 패키지를 사는 것이 최소 가격일 겁니다. 하지만 패키지를 살 수 있는 만큼 모두 구매한 .. 2021. 4. 20.
[백준/C,C++] 1850번: 최대공약수 www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 풀이 A, B 길이의 최대 공약수만큼 1을 출력해주면 됩니다. #include using namespace std; using LL = long long; LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL.. 2021. 4. 20.
[백준/C,C++] 10610번: 30 www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 풀이 30의 배수는 끝자리가 0으로 끝남과 동시에 3의 배수여야 합니다. 즉 입력된 수의 각 자릿수에 0이 하나라도 존재해야 하고, 각 자릿수를 모두 더한 합이 3의 배수여야 합니다. 두 조건을 충족한다면 입력된 수의 각 자릿수를 큰 숫자부터 출력해주면 됩니다. #include using namespace std; int main(void) { int cnt[10] = { 0, }; string s; cin >>.. 2021. 4. 20.
[백준/C,C++] 2875번: 대회 or 인턴 www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 풀이 여학생의 수 N, 남학생의 수 M, 인턴쉽에 참여해야 하는 인원 K가 주어졌을 때, 인턴쉽에 참여해야 하는 인원을 고려하기 전 만들 수 있는 최대의 팀 수는 min(n / 2, m) 입니다. 여기서 잉여 인원은 학생 수에서 팀에 포함되는 학생 수(최대의 팀 수 * 3)를 빼주면 되겠죠.. K가 잉여 인원보다 작을 땐 문제가 되지 않습니다. 어차피 최대의 팀 수에는 영향을 끼치지 못하기 때문이죠. K가 잉여 인원보다 클 때 빠져야 하는 인원수는 K - 잉여인원입니다. 최대의 .. 2021. 4. 20.