๊ฐœ๋ฐœ์ž HOON
๐Ÿ› HOON DEVLog
๊ฐœ๋ฐœ์ž HOON
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ˜Ž ์ „์ฒด ์นดํ…Œ๊ณ ๋ฆฌ (137)
    • ๐Ÿ“ ์‹ ์ž… ์ธํ„ฐ๋ทฐ ์ค€๋น„ (7)
    • ๐Ÿฆ” ์ทจ์—…์ค€๋น„ ๊ธฐ๋ก (7)
    • โ˜• ์ž๋ฐ” : JAVA (5)
    • ๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS (80)
    • ๐ŸŒฑ ๋ฐฑ์—”๋“œ : Backend (13)
    • ๐Ÿงช ์ปดํ“จํ„ฐ๊ณผํ•™ : CS (11)
    • ๐Ÿ—‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : DB (1)
    • ๐Ÿƒ‍โ™‚๏ธ DEVLOG (8)
    • โš™๏ธ Trouble Shooting (5)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • GitHub
  • Resume

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๊ฐœ๋ฐœ์ž HOON

๐Ÿ› HOON DEVLog

๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ตฌ๋ช…๋ณดํŠธ (level2, python)

2022. 9. 8. 23:54

๋ฌธ์ œ ์„ค๋ช…

 

๋ฌด์ธ๋„์— ๊ฐ‡ํžŒ ์‚ฌ๋žŒ๋“ค์„ ๊ตฌ๋ช…๋ณดํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ์ถœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ช…๋ณดํŠธ๋Š” ์ž‘์•„์„œ ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 2๋ช…์”ฉ ๋ฐ–์— ํƒˆ ์ˆ˜ ์—†๊ณ , ๋ฌด๊ฒŒ ์ œํ•œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ [70kg, 50kg, 80kg, 50kg]์ด๊ณ  ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์ด 100kg์ด๋ผ๋ฉด 2๋ฒˆ์งธ ์‚ฌ๋žŒ๊ณผ 4๋ฒˆ์งธ ์‚ฌ๋žŒ์€ ๊ฐ™์ด ํƒˆ ์ˆ˜ ์žˆ์ง€๋งŒ 1๋ฒˆ์งธ ์‚ฌ๋žŒ๊ณผ 3๋ฒˆ์งธ ์‚ฌ๋žŒ์˜ ๋ฌด๊ฒŒ์˜ ํ•ฉ์€ 150kg์ด๋ฏ€๋กœ ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์—ฌ ๊ฐ™์ด ํƒˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

๊ตฌ๋ช…๋ณดํŠธ๋ฅผ ์ตœ๋Œ€ํ•œ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ๊ตฌ์ถœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด people๊ณผ ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ limit๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์‚ฌ๋žŒ์„ ๊ตฌ์ถœํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ตฌ๋ช…๋ณดํŠธ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ
 
  • ๋ฌด์ธ๋„์— ๊ฐ‡ํžŒ ์‚ฌ๋žŒ์€ 1๋ช… ์ด์ƒ 50,000๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๊ฐ ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ๋Š” 40kg ์ด์ƒ 240kg ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์€ 40kg ์ด์ƒ 240kg ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์€ ํ•ญ์ƒ ์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ ์ค‘ ์ตœ๋Œ“๊ฐ’๋ณด๋‹ค ํฌ๊ฒŒ ์ฃผ์–ด์ง€๋ฏ€๋กœ ์‚ฌ๋žŒ๋“ค์„ ๊ตฌ์ถœํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ
 
people limit return
[70, 50, 80, 50] 100 3
[70, 80, 50] 100 3

 


 

ํ’€์ด ์ฝ”๋“œ

def solution(people, limit):
    answer = 0
    people.sort()
    left = 0
    right = len(people)-1
    
    while True:
        if left > right:
            break
        
        if left == right:
            answer += 1
            break
            
        new_limit = limit - people[left]
        while right > 0 and people[right] > new_limit:
            right -= 1
            answer += 1

        if left < right:
            left += 1
            right -= 1
            answer += 1
        
    return answer

 

๋ฌธ์ œ ๋ถ„๋ฅ˜๋Š” ํƒ์š•๋ฒ•์ด ๋งž๋‹ค.

ํ•˜์ง€๋งŒ ๊ตฌํ˜„ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฑ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์ดํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

level 2์˜ ๋ฌธ์ œ๋Š” ์•„๋‹Œ ๊ฒƒ ๊ฐ™์€๋ฐ.. ์€๊ทผํžˆ ์•  ๋จน์€ ๋ฌธ์ œ๋‹ค.

 

์šฐ์„  ํƒ์š•๋ฒ•์ธ ์ด์œ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

๋ณดํŠธ๋Š” 1๋ช…~2๋ช…๊นŒ์ง€ ํƒˆ ์ˆ˜ ์žˆ๋‹ค. ๋ณดํŠธ๋ฅผ ํƒœ์šธ ๋•Œ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์€, ์ตœ๋Œ€ํ•œ limit์— ๊ทผ์ ‘ํ•˜๊ฒŒ ํƒœ์šฐ๋Š” ๋ฐฉ์‹์ด ํšจ์œจ์ ์ผ ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด, ์‚ฌ๋žŒ๋“ค์˜ ๋ฌด๊ฒŒ๋ฅผ ์ •๋ ฌ์„ ํ•˜๊ณ  ๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ์‚ฌ๋žŒ + ํ•œ๊ณ„๋ฅผ ๋„˜์ง€ ์•Š์„ ๋งŒํผ์˜ ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ์˜ ์กฐํ•ฉ์œผ๋กœ ํƒœ์šฐ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ์œจ์ ์ผ ๊ฒƒ์ด๋‹ค.

 

ํ•„์ž๋Š” ํˆฌ ํฌ์ธํ„ฐ ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.

left ํฌ์ธํ„ฐ์™€ right ํฌ์ธํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ๊ฐ people์˜ ์–‘ ๋์— ๋Œ€๊ธฐ ํ•˜๋„๋ก ํ•œ๋‹ค.

 

๊ตฌํ˜„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1) left ํฌ์ธํ„ฐ๊ฐ€ right ํฌ์ธํ„ฐ๋ณด๋‹ค ์ปค์ง€๋ฉด ์ด๋ฏธ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ํƒœ์šด ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จ, break

2) left ํฌ์ธํ„ฐ์™€ right ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ™์€ ์œ„์น˜๋ผ๋ฉด, ์ด ์œ„์น˜์— ์žˆ๋Š” ์‚ฌ๋žŒ 1๋ช…๋งŒ์ด ๋‚จ์•˜๋‹ค๊ณ  ํŒ๋‹จ, answer += 1ํ›„ break

3) new_limit์€ ํ•œ๊ณ„์—์„œ ํ˜„์žฌ ๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ์‚ฌ๋žŒ์˜ ๋ฌด๊ฒŒ๋ฅผ ๋บ€ ๊ฒƒ.

4) new_limit์„ ๋„˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๊นŒ์ง€ right ํฌ์ธํ„ฐ๋ฅผ ์•ž์œผ๋กœ ์ด๋™, ๋„˜๋Š” ์‚ฌ๋žŒ์€ ์–ด๋–ค ์กฐํ•ฉ์œผ๋กœ๋„ 2๋ช…์˜ ์กฐํ•ฉ์œผ๋กœ ํƒœ์šธ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ answer += 1, right ํฌ์ธํ„ฐ๋Š” 0๋ณด๋‹ค ์ž‘์•„์ง€๋ฉด ์•ˆ ๋˜๋ฏ€๋กœ ์กฐ๊ฑด ์‚ฝ์ž… ํ•„์ˆ˜.

5) left < right์ธ ๊ฒฝ์šฐ, ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์‚ฌ๋žŒ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋‘ ์‚ฌ๋žŒ์„ ์„ ํƒํ•ด์„œ ๋ณดํŠธ์— ํƒœ์šฐ๋ฏ€๋กœ, left์™€ right ๋ชจ๋‘ ํ•œ ์นธ์”ฉ ์ด๋™, answer += 1

 

 

์ด์ „์— ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋„ ๋งŽ์ด ์‹œ๋„ํ•ด๋ดค๋Š”๋ฐ, ์‹œ๊ฐ„ ์ดˆ๊ณผ์˜ ์˜ํ–ฅ์ด ๋„ˆ๋ฌด ์ปค์„œ ํˆฌ ํฌ์ธํ„ฐ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์•˜๋‹ค.

๋•์„ ๋ณธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

1) [60], 70, 1

2) [60, 60], 60, 2

 

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ์ข‹์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋‘ ๊ฐœ์ด๋ฏ€๋กœ, ํ˜น์‹œ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค๋ฉด ํ™•์ธํ•ด๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค.

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ (level2, python)  (0) 2022.09.09
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] N๊ฐœ์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ (level2, python)  (0) 2022.09.09
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ (level2, python)  (0) 2022.09.08
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜์–ด ๋๋ง์ž‡๊ธฐ (level2, python)  (0) 2022.09.08
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นดํŽซ (level2, python)  (0) 2022.09.08
    '๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ (level2, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] N๊ฐœ์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ (level2, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ (level2, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜์–ด ๋๋ง์ž‡๊ธฐ (level2, python)
    ๊ฐœ๋ฐœ์ž HOON
    ๊ฐœ๋ฐœ์ž HOON
    ์ข‹์€ ๋ฐฑ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก์„ ๋ชจ์•˜์Šต๋‹ˆ๋‹ค. # ์ฃผ๋‹ˆ์–ด # ๋ฐฑ์—”๋“œ # ๊ฐœ๋ฐœ์ž

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”