๐Ÿงฉ Algorithm/[Programmers] Level 2

[Programmers] L2. ๊ตฌ๋ช…๋ณดํŠธ (Python/ํˆฌ ํฌ์ธํ„ฐ)

devCloud 2024. 11. 15. 19:12
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr


ํ’€์ด ๋ฐฉ๋ฒ•

1๏ธโƒฃ ์ •๋ ฌ  (O(nlogโกn)์‹œ๊ฐ„)

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

2๏ธโƒฃ ํˆฌ ํฌ์ธํ„ฐ ์‚ฌ์šฉ (O(n) ์‹œ๊ฐ„

  • ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ์‚ฌ๋žŒ(์™ผ์ชฝ ํฌ์ธํ„ฐ)๊ณผ ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ(์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ)์„ ํ™•์ธํ•œ๋‹ค.
  • ๋‘ ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ ํ•ฉ์ด ๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š์œผ๋ฉด, ๋‘ ์‚ฌ๋žŒ์„ ํ•œ ๋ณดํŠธ์— ํƒœ์šด๋‹ค(์–‘์ชฝ ํฌ์ธํ„ฐ๋ฅผ ์ด๋™).

3๏ธโƒฃ ํ˜ผ์ž ํƒœ์šฐ๊ธฐ

  • ๋‘ ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ ํ•ฉ์ด ๋ฌด๊ฒŒ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋ฉด, ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ๋งŒ ๋ณดํŠธ์— ํƒœ์šฐ๊ณ  ์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ์ด๋™ํ•œ๋‹ค.

4๏ธโƒฃ ๋ฐ˜๋ณต

  • ์™ผ์ชฝ ํฌ์ธํ„ฐ๊ฐ€ ์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ๋„˜์„ ๋•Œ๊นŒ์ง€ ์œ„์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

5๏ธโƒฃ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜

  • ํ•„์š”ํ•œ ๋ณดํŠธ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

[Two-Pointers(ํˆฌ ํฌ์ธํ„ฐ) ๊ฐœ๋… ์ •๋ฆฌ] ๐Ÿ”— https://dev-cloud.tistory.com/420

Solution

def solution(people, limit):
    answer = 0
    people = sorted(people)
    start = 0
    end = len(people) - 1
    while start <= end:
        if people[start] + people[end] <= limit:
            start += 1
            end -= 1
            answer += 1
        else:
            answer += 1
            end -= 1
    return answer

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

์ฒ˜์Œ์—” ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๊ณ  ์ œ์ถœํ–ˆ๋Š”๋ฐ, ์‹คํ–‰ ์‹œ๊ฐ„๋„ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ์˜ค๋‹ต์ด ๋งŽ์•˜๋‹ค. ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜๋‹ˆ ํ›จ์”ฌ ํšจ์œจ์ ์ด๊ณ  ๋” ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


 

728x90