[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Lv2] ๊ตฌ๋ช…๋ณดํŠธ / Python

๐Ÿ“š Problem Solving/Programmers

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ตฌ๋ช…๋ณดํŠธ

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

programmers.co.kr

import sys

input = sys.stdin.readline

limit = int(input())
people = list(map(int, input().split()))


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


print(solution(people, limit))

 

ํ•ด์„ค

๋ณดํŠธ์—๋Š” ์ตœ๋Œ€ ๋‘๋ช…์˜ ์ธ์›๋ฐ–์— ํƒ€์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ, ๊ฐ€์žฅ ์ž‘์€ ๋ฌด๊ฒŒ์˜ ์ธ์›๊ณผ ๊ฐ€์žฅ ํฐ ๋ฌด๊ฒŒ์˜ ์ธ์›์˜ ํ•ฉ์„ limit๊ณผ ๋น„๊ตํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค. people ๋ฆฌ์ŠคํŠธ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1. ๊ฐ€์žฅ ์ ์€ ๋ฌด๊ฒŒ์™€ ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ๋ฌด๊ฒŒ์˜ ํ•ฉ์„ limit๊ณผ ๋น„๊ตํ•œ๋‹ค.

2. limit๋ณด๋‹ค ํ•ฉ์ด ๋” ์ž‘๋‹ค๋ฉด i๋ฅผ ๋Š˜๋ฆฌ๊ณ  j๋ฅผ ์ค„์ธ๋‹ค.

3. limit๋ณด๋‹ค ํ•ฉ์ด ๋” ํฌ๋‹ค๋ฉด j๋งŒ ์ค„์ธ๋‹ค.