[프로그래머스 코딩테스트 연습문제] 요격 시스템 | 알고리즘 설명 & 문제 풀이 with 자바스크립트(Javascript)

Re_Go·2023년 12월 17일
0

코딩테스트연습

목록 보기
34/106
post-thumbnail

1. 문제 설명

2. 제한 사항

3. 입출력 예

4. 입출력 예 설명

5. 첫번째 문제 풀이(2023-12-17) faild

이 문제는 현재 제 역량으로는 안될 것 같아서 그냥 블로그 글을 참고하게 되었는데요.

결론만 말하자면 배열들의 각각의 0번 (x값 좌표)을 기준으로 오름차순 하고, for문을 돌려서 현재의 endpoint(y 좌표)가 x좌표보다 작을 경우, 즉 현재의 요격 선상에 다음 배열의 x부터 y까지의 바가 겹치지 않을 때 endpoint 값을 다음 배열의 y값으로 할당해주고 count를 증가시킨 후

그 다음 루프에서 endpoint가 x보다 클 경우 현재의 요격 선상에 겹치므로 다음 미사일(다음 배열 요소)을 선택하여 비교를 하는 것으로 정답을 구해나아가는 방식이더라고요.

물론 제가 현재 이해할 수준이 안되서 이것도 겨우 이해를 한거지만, 그래도 최대한 이해를 해보고 제가 현재 표현할 수 있는 코드대로 작성하여 코드 실행에서는 통과를 했는데, 정작 코드 제출에서는 테스트 케이스 11개 중 4개만 통과 되었더라고요.

음... 이것도 완탐의 문제인가 생각을 하는데, 나중에 다른 분들 풀이를 보고 이해라도 해야겠습니다.

function solution(targets) {

    let answer = 0;
    targets.sort((a, b) => a[0] - b[0]);
   
  let endPoint = 0;  

  for(let i = 0 ; i < targets.length ; i++){
      if(endPoint <= targets[i][0]){
          endPoint = targets[i][1]
          answer++
          continue;
      }
  }
    return answer;
}
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글