Programmers / 구명보트 / Python 파이썬

2022. 5. 25. 23:19·coding test - python/Programmers
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 구명보트 (2단계)

문제 사이트:  https://programmers.co.kr/learn/courses/30/lessons/42885


모범 답안

def solution(people, limit):
    answer = 0
    people.sort()
    i = 0
    j = len(people) - 1
    while i <= j:
        answer += 1
        if people[i] + people[j] <= limit:
            i += 1
        j -= 1
    return answer

주어진 정렬을 sort하여 오름차순으로 만든 다음에 가장 가벼운 사람과 가장 무거운 사람의 몸무게를 차례대로 더해가며 limit보다 작거나 같으면 같이 보내고, 무거우면 제일 무거운 사람부터 차례대로 보내는 방식이다.

 

 몸무게 오름차순으로 정렬된 배열에서 i는 ->방향, j는 <-방향으로 진행되면서 보트가 허용하면 보내고, 아니면 j부터 보내고, j가 i를 추월하는 순간 모든 검사가 끝난 것이므로 반복문을 종료한다. 이러한 문제 유형은 기본기문제에 있다.

 

 

나의 풀이

 

문제 풀었던 과정:

 

처음에는 큐를 이용해서 sort로 몸무게가 작은 사람 순서로 정렬하고, 첫번째 사람부터 차례대로 큐에 넣어 총합을 매번 검사한다. 총합이 limit보다 작으면 큐에 계속 넣고, 총합이 limit 과 같으면 큐를 초기화하고 카운트를 1회 추가해준다.

만약 총합이 limit보다 커지는 지점이 생기면 앞의 수들을 pop(0) 하고 카운트를 1회 추가한다.

 

그런데 너무 복잡하게 생각해서인지 자꾸 문제를 푸는데 오류가 났다. 나중에 보니 푸는 과정도 테스트 문제에만 허용되지, 다른 케이스에는 전혀 도움되지 않는 풀이었다.

 

기본기 문제를 풀었을 때처럼 i와 j를 이용하여 리스트 인덱스에 방향을 부여해서 풀면 쉽게 풀린다.

 


 

728x90
반응형

'coding test - python > Programmers' 카테고리의 다른 글

Programmers / 모음 사전 / Python 파이썬  (0) 2022.05.26
Programmers / 짝지어 제거하기 / Python 파이썬  (0) 2022.05.25
Programmers / 프린터 / Python 파이썬 - 작성중  (0) 2022.05.20
Programmers / 주식 가격 / Python 파이썬  (0) 2022.05.19
Programmers / n^2 배열 자르기 / Python 파이썬  (0) 2022.05.18
'coding test - python/Programmers' 카테고리의 다른 글
  • Programmers / 모음 사전 / Python 파이썬
  • Programmers / 짝지어 제거하기 / Python 파이썬
  • Programmers / 프린터 / Python 파이썬 - 작성중
  • Programmers / 주식 가격 / Python 파이썬
sillon
sillon
꾸준해지려고 합니다..
    반응형
  • sillon
    sillon coding
    sillon
  • 전체
    오늘
    어제
    • menu (612)
      • notice (2)
      • python (68)
        • 자료구조 & 알고리즘 (23)
        • 라이브러리 (19)
        • 기초 (8)
        • 자동화 (14)
        • 보안 (1)
      • coding test - python (301)
        • Programmers (166)
        • 백준 (76)
        • Code Tree (22)
        • 기본기 문제 (37)
      • coding test - C++ (5)
        • Programmers (4)
        • 백준 (1)
        • 기본기문제 (0)
      • 공부정리 (138)
        • 신호처리 시스템 (0)
        • Deep learnig & Machine lear.. (41)
        • Data Science (18)
        • Computer Vision (17)
        • NLP (40)
        • Dacon (2)
        • 모두를 위한 딥러닝 (강의 정리) (4)
        • 모두의 딥러닝 (교재 정리) (9)
        • 통계 (2)
      • HCI (22)
        • Haptics (7)
        • Graphics (11)
        • Arduino (3)
      • Project (20)
        • Web Project (0)
        • App Project (1)
        • Paper Project (1)
        • 캡스톤디자인2 (17)
        • etc (1)
      • OS (10)
        • Ubuntu (9)
        • Rasberry pi (1)
      • App & Web (9)
        • Android (7)
        • javascript (2)
      • C++ (5)
        • 기초 (5)
      • Cloud & SERVER (7)
        • Git (2)
        • Docker (0)
        • DB (4)
      • Paper (7)
        • NLP Paper review (6)
      • 데이터 분석 (0)
        • GIS (0)
      • daily (2)
        • 대학원 준비 (0)
      • 영어공부 (6)
        • job interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    programmers
    백준
    Python
    소수
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sillon
Programmers / 구명보트 / Python 파이썬
상단으로

티스토리툴바