[프로그래머스 코딩테스트 연습문제] 진료순서 정하기 문제 풀이 with 자바스크립트(Javascript) & 자바(Java)

Re_Go·2024년 6월 27일
0

코딩테스트연습

목록 보기
82/106
post-thumbnail

1. 첫번째 문제 풀이(2024-06-27)

해당 문제는 이중 반복문을 사용한 간단한 완전 탐색 알고리즘으로 문제를 풀었는데요.

현재 배열의 요소가 다른 요소보다 값이 클 경우 우선 순위 변수(grade)를 증가시켜주기 때문에 별다른 어려움은 없었습니다.

그럼 해당 공식을 적용한 자바스크립트 버전을 소개해 드리겠습니다.

  1. 자바스크립트 버전
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;
}

그리고 위의 코드를 자바로 짠 코드는 아래와 같습니다.

  1. 자바 버전
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;
    }
}

2. 자바와 자바스크립트 풀이 차이점

  1. JS는 배열을 생성하는 방법이 비교적 간단하나, 자바의 경우 약간 번거로웠습니다. 특히 자바의 일반 배열의 경우 push 메서드가 없기 때문에 ArrayList를 생성해야 하는 번거로움도 존재합니다. 물론 이번 문제는 쉬운 편이라 딱히 ArrauList를 안써도 해결이 가능합니다.
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글