자료구조 12

프로그래머스 문제풀이 - 더 맵게 (priority_queue)

프로그래머스 문제풀이 코딩테스트 연습 > 힙(Heap) > 더 맵게 programmers.co.kr/learn/courses/30/lessons/42626 C++ #include #include using namespace std; int solution(vector scoville, int K) { int answer = 0; priority_queue scov(scoville.begin(), scoville.end()); while (scov.top() < K) { if (scov.size() == 1) return -1; ++answer; int first = scov.top(); scov.pop(); first += scov.top() * 2; scov.pop(); scov.push(first);..

프로그래머스 문제풀이 - 프린터 (큐)

프로그래머스 문제풀이 코딩테스트 연습 > 스택/큐 > 프린터 programmers.co.kr/learn/courses/30/lessons/42587 C++ Latest /* * 프로그래머스 * 코딩테스트 연습 > 스택/큐 > 프린터 https://programmers.co.kr/learn/courses/30/lessons/42587 */ #include #include using namespace std; int solution(vector priorities, int location) { int answer = 0; queue idxs; priority_queue pq; for (int i = 0; i < priorities.size(); i++) { idxs.push(i); pq.push(priori..

프로그래머스 문제풀이 - 다리를 지나는 트럭 (큐)

프로그래머스 문제풀이 코딩테스트 연습 > 스택/큐 > 다리를 지나는 트럭 programmers.co.kr/learn/courses/30/lessons/42583 C++ #include #include #include using namespace std; int solution(int bridge_length, int weight, vector truck_weights) { int answer = 0; int weightSum = 0; queue bridge; for (int i = 0; i < bridge_length; i++) bridge.push(0); int i = 0; while(i < truck_weights.size()) { ++answer; weightSum -= bridge.front();..

프로그래머스 문제풀이 - 기능개발 (큐)

프로그래머스 문제풀이 코딩테스트 연습 > 스택/큐 > 기능개발 programmers.co.kr/learn/courses/30/lessons/42586 C++ #include #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; deque days; for (int i = 0; i < progresses.size(); i++) { int day = 0; for (int j = progresses[i]; j < 100; j += speeds[i]) ++day; if (!days.empty() && days.front() < day) { answer.push_back(days..

프로그래머스 문제풀이 - 주식가격 (스택)

프로그래머스 문제풀이 코딩테스트 연습 > 스택/큐 > 주식가격 programmers.co.kr/learn/courses/30/lessons/42584 C++ #include #include #include using namespace std; vector solution(vector prices) { int size = prices.size(); vector answer(size); stack st; int idx = 0; for (auto n : prices) { while (!st.empty() && prices[st.top()] > n) { answer[st.top()] = idx - st.top(); st.pop(); } st.push(idx++); } --idx; while (!st.empty(..

프로그래머스 문제풀이 - 베스트앨범 (해시)

프로그래머스 문제풀이 코딩테스트 연습 > 해시 > 베스트앨범 programmers.co.kr/learn/courses/30/lessons/42579 C++ #include #include #include #include using namespace std; vector solution(vector genres, vector plays) { vector answer; unordered_map songs; unordered_map totalPlay; vector genresVec; for (int i = 0; i < genres.size(); i++) { totalPlay[genres[i]] += plays[i]; songs[genres[i]].push_back(make_pair(i, plays[i])); ..

프로그래머스 문제풀이 - 전화번호 목록 (해시)

프로그래머스 문제풀이 코딩테스트 연습 > 해시 > 전화번호 목록 programmers.co.kr/learn/courses/30/lessons/42577 C++ #include #include using namespace std; bool solution(vector phone_book) { string phone_num, phone_num2; int leng, leng2; for (int i = 0; i < phone_book.size() - 1; i++) { phone_num = phone_book[i]; leng = phone_num.length(); for (int j = i + 1; j < phone_book.size(); j++) { phone_num2 = phone_book[j]; leng2 ..

정올 2499 저울 문제풀이

정올 문제풀이 2499 : 저울 입력받은 숫자들을 더해서 만들 수 없는 최소 숫자를 구하기 제출코드 c++ #include #include using namespace std; int main() { int n; int arr[1000]; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", arr + i); sort(arr, arr + n, less()); int res = 0; for (int i = 0; i < n; i++) { if (res + 1 < arr[i]) break; res += arr[i]; } ++res; printf("%d\n", res); return 0; } 입력 예 7 3 1 6 2 7 30 1 정렬! 1 1 2 3 6 7 30..