본문 바로가기
Computer Science/Programmers

[ 프로그래머스 ] 🚑 진료 순서 정하기 | C++, Javascript

by 기억보다 기록을 2023. 6. 19.
반응형

 

 

 

 

 

문제 설명


🚑 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다.

정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.


제한사항
중복된 원소는 없습니다. 1 ≤ emergency의 길이 ≤ 101 ≤ emergency의 원소 ≤ 100

 


 

 

입출력 예시


emergency  result
[3, 76, 24] [3, 4, -1]
[1, 2, 3, 4, 5, 6, 7] [7, 6, 5, 4, 3, 2, 1]
[30, 10, 23, 6, 100]   [2, 4, 3, 5, 1]

 

🚑 입출력 예 설명

입출력 예 #1
emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 return합니다.

입출력 예 #2
emergency가 [1, 2, 3, 4, 5, 6, 7]이므로 응급도의 크기 순서대로 번호를 매긴 [7, 6, 5, 4, 3, 2, 1]를 return합니다.

입출력 예 #3
emergency가 [30, 10, 23, 6, 100]이므로 응급도의 크기 순서대로 번호를 매긴 [2, 4, 3, 5, 1]를 return합니다.

 

 


 

문제 해결


1. In C++

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> emergency) {
    vector<int> answer;
    vector<int> temp = emergency;

    sort(temp.begin(), temp.end(), greater<>());

    for(int i = 0; i < emergency.size(); i++)
    {
        for(int j = 0; j < temp.size(); j++)
        {
            if(emergency[i] == temp[j])
            {
                answer.push_back(j+1);
                break;
            }
        }
    }

    return answer;
}

 

 

2. In Javascript

function solution(arr, queries) {
  const result = [];
  
  for (let i = 0; i < queries.length; i++) {
    const [s, e, k] = queries[i];
    const subArray = arr.slice(s, e + 1);
    const filteredArray = subArray.filter(num => num > k);
    
    if (filteredArray.length === 0) {
      result.push(-1);
    } else {
      const minVal = Math.min(...filteredArray);
      result.push(minVal);
    }
  }
  
  return result;
}

 

반응형