ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

14225๋ฒˆ: ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ

์ˆ˜์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ˆ˜์—ด S์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์œผ๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž์—ฐ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, S = [5, 1, 2]์ธ ๊ฒฝ์šฐ์— 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)์„ ๋งŒ๋“ค ๏ฟฝ

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ์ด ๋ฌธ์ œ๋Š” ์ฃผ์–ด์ง„ ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ํ•ฉ์„ ๊ตฌํ•˜์˜€์„ ๋•Œ, ๊ตฌํ•  ์ˆ˜ ์—†๋Š” ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ 1์—์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํŠธ๋ฆฌ๋กœ ๋ฒ—๋Š”๋‹ค๋ฉด ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค. ์ฆ‰ ์ฃผ์–ด์ง„ ์ˆ˜์—ด์„ ๋ชจ๋‘ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๋ถ€๋ถ„์ ์œผ๋กœ ์„ ํƒํ•˜์ง€ ์•Š์„ ๋•Œ์— ๋”ฐ๋ผ ํ•ฉ์„ ๊ตฌํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 ์ด๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ๊ฐํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค.

 

  • ์ค‘๊ฐ„์— ๋ฐœ์ƒํ•˜๋Š” ๊ฐ’๋„ ๊ธฐ๋กํ•˜์—ฌ์•ผ ํ•˜๊ธฐ์—, ์ธ๋ฑ์Šค๊ฐ€ N์— ์ด๋ฃจ๋Š” ๊ฒฝ์šฐ๋งŒ ๊ฐ’์„ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ฐ€์ง€๋ฅผ ๋ป—์„ ๋•Œ๋งˆ๋‹ค ๋ถ€๋ถ„ ํ•ฉ์„ ๊ธฐ๋กํ•œ๋‹ค.
  • ์žฌ๊ท€ ํ˜ธ์ถœ์„ ํ•  ๋•Œ, ํ˜„์žฌ ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ๊ณผ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด ์žฌ๊ท€ ํ˜ธ์ถœ์„ ํ•œ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin


def dfs(idx, sum_num):
    global answer

    if idx == n:
        return

    answer.add(sum_num + s[idx])
    dfs(idx + 1, sum_num + s[idx])
    dfs(idx + 1, sum_num)


if __name__ == '__main__':
    n = int(stdin.readline())
    s = list(map(int, stdin.readline().split(' ')))
    answer = set(s[:])
    dfs(0, 0)

    ret = 0
    for num in range(max(answer)):
        if num + 1 not in answer:
            ret = num + 1
            break

    print(ret if ret else max(answer) + 1)

 ๋น ์ง„ ์ˆ˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ตฌํ•œ ๊ฐ’์—์„œ max๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ณ  ๋๊นŒ์ง€ ํƒ์ƒ‰ํ•˜์—ฌ๋„ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ๋Š” max + 1 ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€