greenhelix
greenhelix
greenhelix
11-02 11:23
  • All (229)
    • Algorithm (118)
      • Algorithm (17)
      • Graph (0)
      • Core (6)
      • Python (18)
      • PythonSnippet (4)
      • Java (59)
      • Kotlin (14)
    • Project (0)
    • Study (8)
      • License (5)
      • EIP (3)
    • Programming (63)
      • Android (41)
      • Flutter (1)
      • Bugs Life (21)
      • Linux (0)
    • Tech (32)
      • Tech (17)
      • Drone (4)
      • Hacking (11)
    • Life (6)
      • INGRESS (1)
      • 심시티빌드잇 (0)
250x250

티스토리

hELLO · Designed By 정상우.
greenhelix

greenhelix

#39_Code Signal Arcade >> Knapsack Light
Algorithm/Java

#39_Code Signal Arcade >> Knapsack Light

2020. 3. 6. 00:00

Code Signal -Arcade

코드시그널
아케이드 문제 관련 풀이들을 구글링하면서 찾아가는 일지를 하나씩하나씩 기록하고자 합니당. 

주로 자바 위주로 풀이를 올릴예정이고, 추가로 공부하고 있는 파이썬이나 코틀린, GO, 자바스크립트 더 나아가 스위프트까지...

되는대로 가능한대로 구글링하고 정답맞추면 바로 패스!!
이런식으로 좋은 코드이든 말든 짜집기한 결과물들을 개인적 소장을 위해 기록합니다. ^^
참고 사이트들은 아래에 링크로 남겨둘터이니 자세하고 더욱 깊은 내용들은 링크로 들어가보세요! \


Knapsack Light

배낭을 가볍게

 

보물 2개를 발견했습니다. 각 보물의 무개는 weight 1, 2이고, 각 보물의 가치는 value 1, 2입니다. 

내 가방의 최대 무게 허용치는 maxW입니다. 

 

두 보물을 다 가져가면 좋지만, 가방의 허용치에 따라 둘중 하나를 선택해야 할 수도 있습니다. 

만약 그렇게 보물을 선택했을때, 나의 가방안에 있는 것들의 가치의 최대치를 만들려면 어떻게 해야하고 그렇게 최적화 했을때, 내가방의 가치를 알려주세요. 

 

뭐 대충이런 느낌이다. 

결론은 가방의 무게를 고려해서 보물을 넣고 , 그 결과에 따른 가치값을 알려달라는 것이다. 

 

답안을 볼까요. 

int knapsackLight(int v1, int w1, int v2, int w2, int maxW) { 
if(w1 > maxW && w2 > maxW){ return 0;}
if(w1 + w2 <= maxW) {return v1 + v2 ;}
if(w1 > maxW){ return v2;}
if(w2 > maxW){ return v1;}
    return Math.max(v1,v2); 
}

간단하게 가정문으로 때렸습니다.. 

 

1번째, 무게1 ,  무게2  가 둘다 내 가방보다 무겁다? 그러면 아무것도 못들고 가죠.. 리턴 0입니다. 

2번째, 무게1 + 무게2  가 내 가방보다 작거나 같다? 그러면 둘다 가져가죠.. v1 + v2를 리턴합니다. 

3번째, ....

보시면 이해가 되죠.?

 

아무튼 이렇게 해서 그 외의 경우는... max를 통해 둘중 좋은거 테이킷! 끝입니다. 

 

 

딱히, 다른 분들의 코드도 비슷해서.. 그냥 넘어갑니다.~


 

공감 버튼♥ 눌러주시면 더욱 많은 포스팅을 올리는데 힘이 됩니다!

부탁드려요 돈드는거 아니잖아요~

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Java' 카테고리의 다른 글

#40_Code Signal Arcade >> Longest Digits Prefix  (0) 2020.03.07
#38_Code Signal Arcade >> Growing Plant  (0) 2020.03.05
#37_Code Signal Arcade >> Array Max Consecutive Sum  (0) 2020.03.04
    'Algorithm/Java' 카테고리의 다른 글
    • #41_Code Signal Arcade >> Digit Degree
    • #40_Code Signal Arcade >> Longest Digits Prefix
    • #38_Code Signal Arcade >> Growing Plant
    • #37_Code Signal Arcade >> Array Max Consecutive Sum
    greenhelix
    greenhelix
    개발에 관한 것들과 개인적인 것을 담는 블로그

    티스토리툴바