J o e
JoE's StOrY
J o e
  • 분류 전체보기 (206)
    • workSpace (184)
      • 도메인 지식 (2)
      • ALGORITHM (39)
      • ANDROID (3)
      • JS (0)
      • JAVA (21)
      • MYSQL (6)
      • NETWORK (3)
      • PYTHON (91)
      • LINUX (9)
      • PROJECT (4)
    • Others (20)
      • Opic (1)
      • myLife (17)
      • popSong (1)
      • 정보처리기사 (1)
    • 훈빠의 특강 (0)
      • opencv (0)
      • python (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • The code with long statements is⋯
  • 매일 매일이 행복하고 밝은 날이 될거에요

인기 글

태그

  • Python
  • ㅖ43
  • java
  • read_html
  • Fully Connected Network
  • linearclassification
  • 단어의 개수
  • sort_value
  • DTO
  • dao
  • 넘파이함수
  • 이미지 연산
  • MySQL
  • numpy
  • 파이썬
  • 넘파이 문제
  • full loss
  • 태블릿 연동
  • sort_index
  • How to create a GUI in Java with JFrame?

최근 댓글

최근 글

티스토리

J o e

WHY?

[책 넣기]
workSpace/ALGORITHM

[책 넣기]

2021. 2. 2. 08:15

[문제]

당신은 상자에 책을 넣고 있는데, 상자의 무게 제한을 넘지 않고 최대한 많이 넣어야 한다. 한 상자에 최대한 많이 책을 넣은 다음 상자를 닫고 봉인한 후, 다음 상자에 책을 넣을 수 있다. 책은 차곡차곡 쌓여있는데, 무조건 가장 위에서부터 책을 꺼내야 한다.

책들의 무게는 weights 로써 주어진다. 이 배열의 첫 번째 요소가 쌓여있는 책 중에서 가장 위에 있는 책이고, 배열의 마지막 요소가 가장 밑에 있는 책이다. 상자에 담을 수 있는 최대 무게는 maxWeight

로 주어진다. 책을 전부 담기 위한 상자의 최소 개수를 구하시오.

풀이 1) python

더보기
class Solution:
    def solution(self, weights, maxWeight):
        answer=[0]
        for i in weights:
            if answer[-1]+i>maxWeight:
                answer.append(i)
            else:
                answer[-1]+=i
        return len(answer) if answer[0]!=0 else 0

풀이 2) python

더보기
class Solution:
    def solution(self, weights, maxWeight):
        s=0
        t=0
        if len(weights)==0: return 0
        for w in weights:
            if s+w>maxWeight:
                t+=1
                s=w
            else:
                s+=w
        return t+1

풀이3) java

더보기
public class Solution{
    public int solution(int[] weights, int maxWeight){
        
        int temp = maxWeight;
        int answer=0;
        
        for(int i=0;i<weights.length;i++){
            if(i==0) answer+=1;
            if(temp>=weights[i]){
                temp-=weights[i];
            }else{
                temp=maxWeight-weights[i];
                answer++;
            }
        }
        
        return answer;
    }
}

'workSpace > ALGORITHM' 카테고리의 다른 글

[가장 짧은 팰린드롬]  (0) 2021.02.02
[행운의 번호]  (0) 2021.02.02
[Python] 핸드폰 번호 가리기  (0) 2020.12.20
[Python] 자연수 뒤집어 배열로 만들기  (0) 2020.12.20
[Python][sort][sorted] 정수 내림차순으로 배치하기  (0) 2020.12.20
    'workSpace/ALGORITHM' 카테고리의 다른 글
    • [가장 짧은 팰린드롬]
    • [행운의 번호]
    • [Python] 핸드폰 번호 가리기
    • [Python] 자연수 뒤집어 배열로 만들기
    J o e
    J o e
    나의 과거를 기록합니다.

    티스토리툴바