반응형
https://programmers.co.kr/learn/courses/30/lessons/42885
글쓴이의 답
개인적인 풀이 임으로
이것보다 더 좋은 알고리즘은 많음...
이렇게도 풀이하는구나.. 공유하기 위해 올림...
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(vector<int> people, int limit) {
int answer = 0;
sort(people.begin(), people.end());
int checkSize = people.size();
for(int k=0; k < checkSize; k++){
int standard = people[k];
for(int i = checkSize -1; i >=0; i-- ){
int addResult = standard + people[i];
if(i == k){
answer++;
checkSize--;
break;
}
else if(addResult <= limit){
answer++;
checkSize--;
break;
}
else{
answer++;
checkSize--;
}
}
}
return answer;
}
아래 답은 효율성 테스트 1,2,3,4,5 에서 떨어진 풀이임...
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(vector<int> people, int limit) {
int answer = 0;
sort(people.begin(), people.end());
while(people.size() != 0){
int standard = people[0];
for(int i = people.size() -1; i >=0; i-- ){
if(i == 0){
answer++;
people.erase(people.begin());
break;
}
int addResult = standard + people[i];
if(addResult <= limit){
answer++;
people.erase(people.begin()+i);
people.erase(people.begin());
break;
}
}
}
return answer;
}
꾸준히 하다보면 실력이 늘겠지..
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스][JAVA] 키패드 누루기 (0) | 2022.10.03 |
---|---|
[프로그래머스][C++] 교점에 별 만들기 (0) | 2022.04.15 |
[프로그래머스][C++] 주식가격 (0) | 2022.04.15 |
[프로그래머스][C++] 영어 끝말잇기 (0) | 2022.04.15 |
[프로그래머스][C++] 삼각 달팽이 (0) | 2022.04.15 |