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

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

1744๋ฒˆ: ์ˆ˜ ๋ฌถ๊ธฐ

๊ธธ์ด๊ฐ€ N์ธ ์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ์ˆ˜์—ด์˜ ํ•ฉ์„ ๊ตฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ๊ทธ๋ƒฅ ๊ทธ ์ˆ˜์—ด์˜ ํ•ฉ์„ ๋ชจ๋‘ ๋”ํ•ด์„œ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ˆ˜์—ด์˜ ๋‘ ์ˆ˜๋ฅผ ๋ฌถ์œผ๋ ค๊ณ  ํ•œ๋‹ค. ์–ด๋–ค ์ˆ˜๋ฅผ ๋ฌถ์œผ๋ ค๊ณ  ํ•  ๋•Œ, ์œ„์น˜์—

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ์ˆ˜์—ด์˜ ๋‘ ์ˆ˜๋ฅผ ๋ฌถ์–ด ๊ณฑํ•œ ํ›„์— ๊ฐ๊ฐ์˜ ๊ฐ’๋“ค ํ•ฉํ•  ๋•Œ, ์ตœ๋Œ“๊ฐ’์ด ๋˜๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Œ์ˆ˜๋Š” ์Œ์ˆ˜ ๋ณ„๋กœ ๊ณฑํ•˜์—ฌ ์–‘์ˆ˜๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ , 0๊ณผ 1์— ๋Œ€ํ•ด ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌํ•ด ์ฃผ์–ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

  • ์ž…๋ ฅ๋˜๋Š” ์ˆซ์ž๋“ค์„ ์Œ์ˆ˜, ์–‘์ˆ˜, 0, 1๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.
  • 0์˜ ๊ฒฝ์šฐ ์กด์žฌ ์—ฌ๋ถ€๋งŒ ํ™•์ธํ•˜๋ฉด ๋˜์ง€๋งŒ, 1์˜ ๊ฒฝ์šฐ ๋ช‡๊ฐœ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
    • 1์€ ๋‹ค๋ฅธ ์ˆ˜์™€ ๊ณฑํ•ด๋„, ๊ฐ™์€ ์ˆ˜์ด๋ฏ€๋กœ ๋ฌถ์ง€ ์•Š๊ณ  ๋”ํ•˜๋Š” ๊ฒƒ์ด ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
    • 0์ด ์žˆ์„ ๊ฒฝ์šฐ, ์Œ์ˆ˜๊ฐ€ ํ™€์ˆ˜๋กœ ์ž…๋ ฅ๋˜์—ˆ์„ ๋•Œ ํ•˜๋‚˜๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค์–ด ์ƒ์‡„์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ์Œ์ˆ˜์˜ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ ๋ถ€ํ„ฐ ๋ฌถ์–ด์„œ ๊ณฑํ•œ๋‹ค.
  • ์–‘์ˆ˜์˜ ๊ฒฝ์šฐ ๊ฐ€์žฅ ํฐ ๊ฐ’ ๋ถ€ํ„ฐ ๋ฌถ์–ด์„œ ๊ณฑํ•œ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin


if __name__ == "__main__":
    n = int(stdin.readline())
    answer = 0
    minus, plus, zero, one = [], [], 1, 0
    for i in range(n):
        num = int(stdin.readline())
        if num > 1:
            plus.append(num)
        elif num == 1:
            one += 1
        elif num < 0:
            minus.append(num)
        else:
            zero = 0
            
    minus.sort(reverse=True)
    plus.sort()

    # 1์€ ๊ณฑํ•ด๋„ ์†Œ์šฉ ์—†์œผ๋ฏ€๋กœ ๋”ํ•œ๋‹ค.
    if one:
        answer += one

    while len(minus) > 1:
        a, b = minus.pop(), minus.pop()
        answer += a * b

    while len(plus) > 1:
        a, b = plus.pop(), plus.pop()
        answer += a * b

    # ๋งŒ์•ฝ ์Œ์ˆ˜๊ฐ€ ๋‚จ๊ณ  0์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ณฑํ•˜์—ฌ ์ƒ์‡„ ์‹œํ‚จ๋‹ค.
    answer += minus[0] * zero if minus else 0
    answer += plus[0] if plus else 0

    print(answer)

 55~57%์ฏค์—์„œ ๊ณ„์† ํ‹€๋ ธ๋‹ค๊ณ  ํ•˜์—ฌ์„œ, ๋ญ๊ฐ€ ํ‹€๋ ธ์ง€ ํ•˜๊ณ  ๋ฐ˜๋ก€๋“ค์„ ์ƒ๊ฐํ•ด๋ณด์•˜๋Š”๋ฐ 0์ผ ๊ฒฝ์šฐ์—๋Š” ๊ฐœ์ˆ˜๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ, 1์ผ ๊ฒฝ์šฐ ๋ช‡ ๊ฐœ๊ฐ€ ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ด๋ฅผ ๋ฐ˜์˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์ˆ˜์ •ํ•˜๋‹ˆ ๋งž์•˜์Šต๋‹ˆ๋‹ค๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.๐Ÿ˜Š

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