혜랑's STORY

[HackerRank] Jim and the Orders 본문

2021 SISS 21기 활동/2학기 C

[HackerRank] Jim and the Orders

hyerang0125 2021. 9. 17. 15:19
2주차 자유 문제
Practice > Algorithms > Greedy

풀이

Serve time이 적은 고객부터 출력하는 문제이다. (Serve time은 Order + Prep time이다.) pair로 Serve time과 고객의 번호를 기억한 뒤, Serve time이 작은 사람을 기준으로 내림차순으로 정렬하였다. 그 뒤, p[i].secone(고객의 번호)를 차례로 result 배열에 넣게 되면 Serve time이 적은 고객의 번호가 순서대로 저장되게 된다.

전체 코드는 다음과 같다.

vector<int> jimOrders(vector<vector<int>> orders) {
    vector<pair<int, int>> p;
    vector<int> result;
    for(int i=0; i < orders.size(); i++){
        p.push_back({(orders[i][0] + orders[i][1]), i+1});
    }
    sort(p.begin(), p.end());
    for(int i=0; i<p.size(); i++){
        result.push_back(p[i].second);
    }
    return result;
}

모든 테스트케이스를 통과한 것을 볼 수 있다.

'2021 SISS 21기 활동 > 2학기 C' 카테고리의 다른 글

[HackerRank] Closet Numbers  (0) 2021.09.24
[HackerRank] Equal Stacks  (0) 2021.09.24
[HackerRank] Permuting Two Arrays  (0) 2021.09.17
[HackerRank] Mark and Toys  (0) 2021.09.12
[HackerRank] Jesse and Cookies  (0) 2021.09.12