[문제보기]
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
[풀이과정]
(1) 과자 봉지 개수 n, 최대 무게 m, 각 과자에 대한 무게 snack 배열 선언
(2) for문을 통해 두 과자를 골랐을 때의 모든 경우를 살펴본다.
그 무게가 m보다 이하일 때,
ans에 값을 변경하면서 최대 무게를 찾는다.
(3) 두 과자를 들고 갈 방법이 없는 경우 -1을 출력하기 위해 flag를 사용했다.
[소스코드]
#include <iostream>
using namespace std;
int snack[1000];
int ans;
int main(){
cin.tie(0);
cout.sync_with_stdio(false);
int T;
cin >> T;
for(int test = 1; test <= T; test++){
int n, m;
cin >> n >> m;
for(int i=0; i<n; i++){
cin >> snack[i];
}
int sum;
ans = 0;
bool flag = false;
for(int i=0; i<n; i++){
for(int j=i+1; j<n; j++){
sum = snack[i] + snack[j];
if(sum <= m){
if(ans < sum)
ans = sum;
flag = true;
}
}
}
cout << "#" << test << " " ;
if(flag){
cout << ans << "\n";
}
else{
cout << "-1" << "\n";
}
}
}
[해결과정 중 실수한 부분]
'알고리즘 스터디 > SW_Expert_Academy' 카테고리의 다른 글
| [SWEA 9480][C++] 민정이와 광직이의 알파벳 공부(D3) (0) | 2020.07.16 |
|---|---|
| [SWEA 9317][C++] 석찬이의 받아쓰기(D3) (0) | 2020.07.16 |
| [SWEA 9280][C++] 진용이네 주차타워(D3) (0) | 2020.07.14 |
| [SWEA 2814][C++] 최장 경로(D3) (0) | 2020.07.12 |
| [SWEA 1215][C++] [S/W 문제해결 기본] 3일차 - 회문1 (D3) (0) | 2020.07.11 |