Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- map
- 백준
- Queue
- dfs
- 프로그래머스
- 스터디
- 음수와 size 비교
- 21609
- kt에이블스쿨
- 알고리즘
- python
- 개인정보수집유효기간
- 코딩
- 모델링
- 코테준비
- BFS
- 코딩테스트
- 코테공부
- 미니프로젝트
- 에이블스쿨
- C++
- 취준
- 파이썬
- 크롤링
- 코테
- 상어중학교
- 머신러닝
- 데이터전처리
- Ai
- 코테연습
Archives
- Today
- Total
얼레벌레
[C++] 프로그래머스 - 귤 고르기 (Lv.2) 본문
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/138476
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결
생각보다 너무 빨리 풀어서 이게 왜 Lv.2인지 생각하게 된 문제였다.
tangerine 원소가 1000만개 였기 때문에, for loop으로 각 원소에 대해 하나하나 접근해 카운트해도 문제 없어 보였다.
그 후 내림차순 sort를 통해 개수가 가장 많은 귤부터 정렬을 하고,
k값과 answer을 갱신하며 문제를 해결했다.
코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int &a, int &b) {
return a>b;
}
int solution(int k, vector<int> tangerine) {
int answer = 0;
vector<int> count(10000001);
for(int i=0; i<tangerine.size(); i++) {
count[tangerine[i]] += 1;
}
sort(count.begin(), count.end(), cmp);
int i=0;
while(k>0) {
k -= count[i];
i+=1;
answer += 1;
}
return answer;
}
결과
'Coding > 코딩테스트 준비' 카테고리의 다른 글
[C++] 프로그래머스 - 압축 (Lv.2) (0) | 2023.01.15 |
---|---|
[C++] 프로그래머스 - 개인 정보 수집 유효기간 (Lv.1) (0) | 2023.01.15 |
[C++] 백준 #15684 사다리 조작 (1) | 2022.10.14 |
[C++] 백준 #16235 나무 재테크 (2) | 2022.10.14 |
[C++] 백준 #16236 아기상어 (0) | 2022.10.12 |