해당 문제는 이중 반복문을 사용한 간단한 완전 탐색 알고리즘으로 문제를 풀었는데요.
현재 배열의 요소가 다른 요소보다 값이 클 경우 우선 순위 변수(grade)를 증가시켜주기 때문에 별다른 어려움은 없었습니다.
그럼 해당 공식을 적용한 자바스크립트 버전을 소개해 드리겠습니다.
- 자바스크립트 버전
function solution(emergency) { // 우선 순위를 저장할 배열 선언 let result = []; // emergency 배열 만큼 for문을 돌리면서 for(let i = 0 ; i < emergency.length ; i++){ // 비교할 emergency 배열의 i번째 요소 선택 let letter = emergency[i] // grade는 매 요소마다 1로 출발해야 하기 때문에 초기화로 진행 let grade = 1; // 두번쨰 for문을 emergency 배열 만큼 돌리고 for(let j = 0 ; j < emergency.length ; j++){ // letter(배열의 i번째, 현재 요소) 가 배열의 값들 보다 높으면, 즉 우선 순위면 grade 증가 if(letter < emergency[j]) grade++; } //도출된 grade를 result 배열에 push result.push(grade); } // result 반환 return result; }
그리고 위의 코드를 자바로 짠 코드는 아래와 같습니다.
- 자바 버전
class Solution { public int[] solution(int[] emergency) { int[] result = new int[emergency.length]; for (int i = 0; i < emergency.length; i++) { int grade = 1; for (int j = 0; j < emergency.length; j++) { if (emergency[i] < emergency[j]) { grade++; } } result[i] = grade; } return result; } }