본문 바로가기

C++22

#1735 문제 분수 A/B는 분자가 A, 분모가 B인 분수를 의미한다. A와 B는 모두 자연수라고 하자. 두 분수의 합 또한 분수로 표현할 수 있다. 두 분수가 주어졌을 때, 그 합을 기약분수의 형태로 구하는 프로그램을 작성하시오. 기약분수란 더 이상 약분되지 않는 분수를 의미한다. 코드 #include #include using namespace std; int gcdIter(int a, int b) {//최대 공약수 구하는 함수 while (b) { a %= b; swap(a, b); } return a; } vector addFountain(vector& n1, vector& n2) { vector result; //두 분수를 더한 값 int gcd; result.assign(2, 0); //분모의 최소 공.. 2023. 3. 17.
#10757 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 코드 #include #include #include using namespace std; //스택에 숫자 담기 void putNumber(stack& s, string& a) { for (int i = 0; i < a.length(); i++) { s.push((a[i] - '0')); } } //더한 값이 10이상인지 아닌지 확인해주는 함수 void cmpSize(int& n, int& top, stack& result) { if (n < 10) {//만약 한 자릿수의 합이 10 이하면 그냥 더해주기 top = 0; result.push(n); } else {//한 자릿수의 합이 10 이상이면 올림수를 설정하고 10을 .. 2023. 3. 5.
#20126 문제 안형찬 교수님은 알고리즘 분석 기말고사를 준비하려고 한다. 알고리즘 기말고사는 총 M분 동안 쉬는 시간 없이 볼 예정이며, 인원이 너무 많아서 공학관 C040호에서 말고 다른 강의실에서 시험을 치를 수 없게 되었다. 공학관 C040호는 0분부터 S분까지 사용 가능하다. S는 무조건 M 이상이기 때문에 안 교수님은 별문제 없이 시험을 치를 것으로 생각하였다. 그러나 공학과 C040호에는 다른 시험도 예정되어 있어서 겹치지 않는 시간을 잡아야 한다. 각 시험은 xi분에 시작해서 yi분 동안 진행하며 서로 겹치지 않는다. 한 시험이 끝난 직후 다음 시험이 있는 경우도 겹치지 않는 것으로 판단한다. 즉, xi + yi ≤ xj 일 때 i 시험과 j 시험은 서로 겹치지 않는다. 안형찬 교수님이 시험을 언제 .. 2023. 3. 3.
#기능개발 문제 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 코드 #include #include #include using namespace std; vector solution(vector progresses, vector s.. 2023. 3. 3.