구명보트 (프로그래머스)

정승옥(seungok)·2021년 4월 19일
0

프로그래머스

목록 보기
34/40
post-thumbnail

문제설명

  • 구명보트에 최대 2명만 탈 수 있고 무게 제한을 초과해서 탈 수 없다.
  • 사람들의 몸무게를 담은 배열 people , 무게 제한 limit 가 매개변수로 주어진다.

제한사항

  • people 배열의 길이는 1이상 50,000 이하
  • 몸무게는 최소 40kg, 최대 240kg
  • 무게 제한은 최소 40kg, 최대 240Kg
  • 항상 무게 제한은 몸무게 최대값보다 크게 주어진다.

문제풀이

⛔️ 1차 풀이

✅ 2차 풀이

체크 포인트

  • 두 코드 모두 배열의 양쪽에서 시작해서 count 값을 증가시킨다.
  • 하지만 1차는 시간 초과, 2차는 통과가 됐다.
  • 차이점은 시간복잡도에 있었다.
  • 메소드를 사용할 경우 어떤 메소드를 사용하냐에 따라 시간복잡도가 다르게 적용된다.
  • pop 메소드 는 배열을 순회 없이 마지막 요소만 제거하면 되기 때문에 시간 복잡도가 O(1) 이다.
  • unshift 메소드 는 요소가 추가되면서 새로운 인덱스를 부여하기 때문에 시간 복잡도가 O(n) 이다.
  • O(1) 경우 데이터 양에 상관 없이 한 번만 작업이 이뤄지지만 O(n) 겨우 데이터 양에 정비례한다.
profile
Front-End Developer 😁

0개의 댓글