[Programmers] 등수매기기, 120882

Jinny·2024년 12월 26일
0
  • 날짜 / 누적횟수: 12.26 (목) / 13회

  • 사이트 이름: 프로그래머스

  • 사용 언어: 자바스크립트

  • 문제 고유 번호 및 레벨: 120882, Lev/ 0

  • 코드 실행 시간: 0.17ms

  • 나의 풀이 방법:

    function solution(score) {
        let result = [];
        
        for (n of score) {
            result.push((n[0] + n[1]) / 2);
        }
        
        // 이후 풀지 못함 (다시 풀기)
    }
    • for 문을 활용하여 result배열에 평균 값을 담은 배열로 만든다.
  • 최적 풀이 방법:

    function solution(score) {
        let avg = score.map(v=>(v[0]+v[1])/2);
        let sorted = avg.slice().sort((a,b)=>b-a);
        return avg.map(v=>sorted.indexOf(v)+1);
    }
    
    • map() 메소드를 활용하여 각 배열의 평균을 담은 배열로 avg배열을 반환한다.
    • sort() 메소드를 활용하여 내림차순으로 정렬 한다.
    • map() 메소드를 활용하여 다시 배열을 만드는데, indexOf를 활용하여 특정 문자열을 찾고 거기서 + 1을 하여 다시 배열을 만든다.
  • 배운 개념:

    • indexOf()
      • string.indexOf(searchvalue, position)
      • 문자열(string)에서 특정 문자열(searchvalue)을 찾고, 검색된 문자열이 ‘첫번째’로 나타내는 위치 index를 리턴한다.
      • 파라미터
        • searchvalue: 필수 입력값, 찾는 문자열
        • position: optional, 기본값은 0, string에서 searchvalue를 찾기 시작할 위치
      • 찾는 문자열이 없으면 -1을 리턴한다.
    • Math.max()
      • 정적 메서드
      • 매게변수로 주어진 숫자 중 가장 큰 수를 반환하거나, 매게변수가 없을 경우 -Infinity를 반환한다.
    • splice()
      • 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.
      • array.splice(start[, deleteCount[, item1[, item2[, …]]]])
        • start: 배열의 변경을 시작할 인덱스이다.
          • 배열의 길이보다 큰 값이라면 실제 시작 인덱스는 배열의 길이로 설정된다.
          • 음수인 경우 배열의 끝에서부터 요소를 세어 나간다.
          • 값의 절대값이 배열의 길이 보다 경우 0으로 설정된다.
        • deleteCount (optional)
          • 배열에서 제거할 요소의 수이다. deleteCount를 생략하거나 값이 array.length - start 보다 크면 start부터의 모든 요소를 제거한다. deleteCount가 0이하라면 어떤 요소도 제거하지 않는다.
          • 이 때는 최소한 하나의 새로운 요소를 지정해야 한다.
        • item1, item2, (optional)
          • 배열에 추가할 요소이다. 아무 요소도 지정하지 않으면 splice()는 요소를 제거하기만 한다.
      • 반환 값
        • 제거한 요소를 담은 배열
        • 하나의 요소만 제거한 경우 길이가 1인 배열을 반환한다. 아무 값도 제거하지 않았으면 빈 배열을 반환한다.

참고 자료

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

profile
세상을 이롭게 하는 프론트엔드 개발자 Jinny

0개의 댓글

관련 채용 정보