코딩공부/코딩문제 풀이들

프로그래머스 - 신고 결과 받기 (아직 성공못함)

지구야 사랑해 2022. 1. 20. 00:24

첫 시도 실패 사유 : 실행 시간 초과

function solution(id_list, report, k) {
    
    let newArr = id_list.filter( (el,idx) => id_list.indexOf(el) === idx); // 중복된 투표는 한번만 처리 완료
    
    const spaceNextId = function (str) {
      let spaceIdx = 0; // 띄어쓰기가 str 몇번째인지 파악
      for (let i = 1; spaceIdx === 0; i++) {
        // 만약 띄어쓰기가 보이면 spceIdx에 띄어쓰기의 인덱스를 복사
        if (str[i] === ' ') {
            spaceIdx = i;
          // 스페이스 다음부터 끝까지 문자열을 자른것을 리턴
        return str.slice(spaceIdx + 1, str.length);
        }

      }
    }
    // 투표 중 신고자 말고 신고당한사람만 따로 이름을 모다 reportName 변수에 저장
    const reportName = newArr.map( el => {
    return spaceNextId(el)
    })
    
    // reportName을 이용해 id_list랑 비교하여 신고당한횟수를 숫자로 저장
    const reportCount = id_list.map(name => {
    let count = 0;
    for (let repoName of reportName ) {
        if (name === repoName) {
            count++
        }
    }
    return count;
})
  // 리폿 카운트 리턴
    return reportCount
    
    
    
}

느낀점 : 복잡한 논리구조를 단순화 시킬 필요가 있음

 

k 변수는 왜 있는건지 모르겠음