전체 58

프로그래머스 문제풀이 - 더 맵게 (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 ..

프로그래머스 문제풀이 - 완주하지 못한 선수 (해시)

프로그래머스 문제풀이 코딩테스트 연습 > 해시 > 완주하지 못한 선수 programmers.co.kr/learn/courses/30/lessons/42576 C++ 코드 #include #include #include using namespace std; string solution(vector participant, vector completion) { map strMap; for (auto name : completion) ++strMap[name]; for (auto name : participant) if (--strMap[name] < 0) return name; }