백준 2798번 - Bronze II
#include <iostream>
#include <algorithm> // abs() 포함되어있음
#include <vector>
#include <string>
using namespace std;
int main(void){
int n,m, sum;
cin>>n>>m;
int num[n];
vector<int> card(n);
for(int i=0;i<n;i++){
cin>>num[i];
}
// 3장의 카드 선택
for(int i=0;i<n;i++){ // n개
for(int j=i+1;j<n;j++){ // n-1개 중 탐색
for(int k=j+1;k<n;k++){ // n-2개 중 탐색
sum = num[i]+num[j]+num[k];
if(sum<=m){ // m보다 합이 같거나 작으면 벡터 card에 추가
card.push_back(sum);
}
}
}
}
sort(card.begin(), card.end()); // 배열 순서대로 정렬
cout << card.back()<<endl; // 마지막 값(최댓값) 출력해라
}
백준 2231번 - Bronze II
#include <iostream>
#include <algorithm> // abs() 포함되어있음
#include <vector>
#include <string>
using namespace std;
int main(void){
int n,sum, part;
cin>>n;
// 첫 숫자부터 입력 값 까지 전부 탐색
for(int i=1;i<n;i++){
sum=i; // 분해합에는 본인이 들어가기 때문
part=i; // 자릿수들을 추출하기위해 다른 변수 사용
while(part){ // 각 자릿수를 더해준다
sum=sum+part%10;
part = part/10;
}
if(n==sum){ // 상향 탐색임으로 처음나온 분해합 생성자가 제일 작은 생성자
cout << i<<endl;
return 0;
}
}
cout << "0"<<endl;
return 0;
}
'코딩 > C++' 카테고리의 다른 글
백준 문제풀이 C++ [220303] - 브루트 포스, pair<type, type> (0) | 2022.03.03 |
---|---|
백준 문제풀이 C++ [220226] - 정렬 (0) | 2022.02.26 |
백준 문제풀이 C++ [220225] - 기본 수학 1단계 (0) | 2022.02.25 |
백준 문제풀이 C++ [220223] - if문 (0) | 2022.02.23 |
백준 문제풀이 C++ [220223] - 문자열 (0) | 2022.02.23 |