문제 출처:https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 문제를 해결하는데 큰 어려움은 없었습니다. 코드는 다음과 같습니다: #include using namespace std ; int main(){ ios::sync_with_stdio(false) ; cin.tie(NULL) ; cout.tie(NULL) ; int a, b, c ; cin >> a >> b >> c ; long long product = a * b * c ; int nums_cnt[10] = {0, }; while(produ..
문제 출처: https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 해당 문제를 빠르게 풀기 위해서는 A는 오름차순으로, B는 내림차순으로 정렬하여 서로 곱해주는 방법이 있다. 하지만 문제에는 B는 재배열하지 말라고 나와있다. 그럼 다시 생각해보자. 예제 1번을 볼때, A와 B를 정렬해서 보면 {A: 0, 1, 1, 1, 6} {B: 8, 7, 3, 2, 1}로 나타낼 수 있으며 각각 0-8, 1-7, 1-3, 1-2, 6-1로 매칭된다. 이 ..
문제 출처 : https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 저는 이 문제를 풀기위해서 9라는 숫자를 배제하고 0~8까지의 숫자가 있다고 생각했습니다. input으로 9가 들어온다면 6으로 간주하여 접근하였으며, 전체적인 개수를 셀때는 6의 개수만 num/2 + num%2의 값으로 구했습니다. #include #include using namespace std ; int main(){ ios::sync_with_stdio(false) ; cin.tie(NULL) ; cout.tie(NULL) ; string N ; int nums_cnt[9..
문제 출처: https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 해당 문제는 그리디(Greedy) 알고리즘으로 항상 최적의 선택(optimal solution)을 해야하는 문제입니다. 해당 문제를 풀기 위해서 저는 sort를 이용하였습니다. 무인도에 갇힌 사람들의 몸무게로 정렬을 한후 left와 right를 보는 커서를 두개 두어 같이 탈 수 있거나, 몸무게가 무거운 사람만 탈 수 있는..
문제 출처: https://www.acmicpc.net/problem/2475 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net #include using namespace std ; int main(){ ios::sync_with_stdio(false); cin.tie(NULL) ; cout.tie(NULL) ; int sum = 0, nums ; for(int i = 0 ; i > nums ; sum += nums * nums ; } cout