[백준] 1092번 배 파이썬 코드

2023. 12. 29. 01:07· 백준

코드1

n = int(input())
weightlimit = [*map(int, input().split())]
m = int(input())
boxweight = [*map(int, input().split())]

weightlimit.sort() # 오름차순 정렬
boxweight.sort() # 오름차순 정렬

cnt = 0 # 개수를 세어줄 변수
while 1:
  if len(boxweight) == 0: break # 옮길 박스가 없으면 break
  for i in range(n-1,-1,-1): # 거꾸로 세어준다.
    if not len(boxweight):
      break
    if weightlimit[-1] < boxweight[-1]: # 옮길 수 없는 경우
      print(-1)
      exit(0)
    for j in range(len(boxweight)-1, -1, -1): # 옮길 수 있는 박스를 찾는다
      if weightlimit[i] >= boxweight[j]:
        boxweight.pop(j)
        break # 하나 찾으면 반복문 종료
  cnt += 1 # 횟수 증가
print(cnt)

보자마자 설계방법이 떠올랐지만, 중간에 노는 크레인이 생겨서 틀렸던 문제. pypy3으로 통과 가능하다. 

코드2

N = int(input())
crane_w = list(map(int, input().split())) # 각 크레인의 무게 제한
crane_w.sort(reverse=True) # 내림차순 정렬

M = int(input()) # 박스 수
box_w = list(map(int, input().split())) # 박스 무게
box_w.sort(reverse=True)

result = 0

# 박스를 옮길 수 없을 경우 -1
if max(crane_w) < max(box_w):
    result = -1
else:
    while box_w:
        for crane in crane_w:
            if box_w and crane < box_w[-1]:
                continue
            for box in box_w:
                if crane >= box:
                    box_w.remove(box)
                    break
        result += 1
print(result)

다른 분의 풀이. python으로 통과 가능하다. 박스를 옮길 수 없는 경우를 밖으로 꺼내 판별할 수 있었음을 알았고, 반복문 중간에 continue를 넣어주어 시간복잡도를 줄인 것 같다. 내 코드보다 훨씬 나은 것 같아 가져와보았다.

'백준' 카테고리의 다른 글

[백준] 5972번 택배 배송 파이썬 코드  (0) 2023.12.30
[백준] 2224번 명제 증명 파이썬 코드  (0) 2023.12.30
[백준] 2206번 벽 부수고 이동하기 파이썬 코드  (0) 2023.12.27
[백준] 10282번 해킹 파이썬 코드  (0) 2023.12.27
[백준] 1956번 운동 파이썬 코드  (0) 2023.12.27
'백준' 카테고리의 다른 글
  • [백준] 5972번 택배 배송 파이썬 코드
  • [백준] 2224번 명제 증명 파이썬 코드
  • [백준] 2206번 벽 부수고 이동하기 파이썬 코드
  • [백준] 10282번 해킹 파이썬 코드
Melon Man
Melon Man
Hello World
Melon Man
제발 CPU는 집에서 만들어 씁시다
Melon Man
전체
오늘
어제
  • 분류 전체보기 (644)
    • 직접 만들어 보기 (2)
    • 가내공업 (2)
    • HTML (0)
    • CSS (4)
    • JAVASCRIPT (51)
    • TYPESCRIPT (14)
    • NODE.JS (19)
    • REACT (7)
    • NEXT.JS (1)
    • REACT NATIVE (5)
    • REDUX (2)
    • PYTHON (17)
    • 자료구조 및 알고리즘 (35)
    • 컴퓨터 구조 (9)
    • 운영체제 (7)
    • NETWORK (3)
    • CodeUp 기본 100제 - Python (98)
    • 잡지식 (1)
    • 백준 (347)
    • SWEA (0)
    • GIT (4)
    • C (2)
    • C++ (11)
    • JAVA (2)
    • 객체지향프로그래밍 (0)
    • 정보처리기사 (1)
    • 프로그래머스_SQL (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 초보
  • 유니온 파인드
  • Node
  • 백준
  • React
  • 입문
  • 자료구조
  • 다익스트라 알고리즘
  • event
  • 알고리즘
  • input
  • 파이썬
  • 위상정렬
  • javascript
  • CodeUp
  • BFS
  • standard built-in object
  • 운영체제
  • 코드업
  • 표준내장객체
  • C++
  • node.js
  • 입출력
  • python
  • TypeScript
  • 정렬
  • 기초
  • 함수
  • 자바스크립트
  • mdn

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.3.0
Melon Man
[백준] 1092번 배 파이썬 코드
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.