반응형
문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/12987
문제
풀이, 코드
이 문제를 풀었을때는 아주 당황했다 설마 이게 맞는걸까..? 싶긴했지만 확신을 가지고 코드를 level3인데 주석에 대한 생각을 적는 시간보다 코드를 치는 시간이 더 짧았다.
3분만에 푸는 시간이었고 풀이는 간단합니다.
a가 공개 b가 최대의 승수 만드는법 -> 그냥 결국 그 값의 큰값중에 가장 큰값을 가져옴
a를 sort함 -> b의 가장 비슷한 큰값을 가져옴
1 3 5 7
2 2 6 8
1 2 / 3 6 / 5 8 -> 다른 케이스도 많지만 결국 이것이 최대의 값임은 분명함!
결국 물론 위의 문제의 예시처럼 다른방법도 많습니다.
하지만, 최대의 승수를 추출하는 방법에 대해서는 결국 가장 큰값을 냄겨두면서 가장 적은 차이로 이기는 것이 포인트입니다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> A, vector<int> B) {
int answer = 0;
int idxA = 0;
sort(A.begin(),A.end());
sort(B.begin(),B.end());
for(int i = 0; i < B.size();i++){
if(A[idxA] < B[i]){
answer++;
idxA++;
}
}
return answer;
}
반응형
'알고리즘 > c++ 프로그래머스' 카테고리의 다른 글
[프로그래머스 기지국 설치] c++ (풀이,코드,그리디) (0) | 2023.06.26 |
---|---|
[프로그래머스 단속카메라] c++ (코드, 풀이) (0) | 2023.06.25 |
[프로그래머스 등굣길] c++ (풀이,코드,dp) (0) | 2023.06.23 |
[프로그래머스 단어 변환] c++ (풀이, 코드, bfs) (0) | 2023.06.23 |
[프로그래머스 야근지수] c++ (풀이,코드) (0) | 2023.06.23 |
댓글