๐Ÿชข ์ˆ˜ ๋ฌถ๊ธฐ

๋ฐฑ์ค€ Gold4

์ˆ˜ ๋ฌถ๊ธฐ

๋ฌธ์ œ


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

์˜ˆ๋ฅผ ๋“ค๋ฉด, ์–ด๋–ค ์ˆ˜์—ด์ด {0, 1, 2, 4, 3, 5}์ผ ๋•Œ, ๊ทธ๋ƒฅ ์ด ์ˆ˜์—ด์˜ ํ•ฉ์„ ๊ตฌํ•˜๋ฉด 0+1+2+4+3+5 = 15์ด๋‹ค. ํ•˜์ง€๋งŒ, 2์™€ 3์„ ๋ฌถ๊ณ , 4์™€ 5๋ฅผ ๋ฌถ๊ฒŒ ๋˜๋ฉด, 0+1+(23)+(45) = 27์ด ๋˜์–ด ์ตœ๋Œ€๊ฐ€ ๋œ๋‹ค.

์ˆ˜์—ด์˜ ๋ชจ๋“  ์ˆ˜๋Š” ๋‹จ ํ•œ๋ฒˆ๋งŒ ๋ฌถ๊ฑฐ๋‚˜, ์•„๋‹ˆ๋ฉด ๋ฌถ์ง€ ์•Š์•„์•ผํ•œ๋‹ค.

์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ˆ˜์—ด์˜ ๊ฐ ์ˆ˜๋ฅผ ์ ์ ˆํžˆ ๋ฌถ์—ˆ์„ ๋•Œ, ๊ทธ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๊ฒŒ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ


์ฒซ์งธ ์ค„์— ์ˆ˜์—ด์˜ ํฌ๊ธฐ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 50๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ˆ˜์—ด์˜ ๊ฐ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜์—ด์˜ ์ˆ˜๋Š” -1,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ


์ˆ˜๋ฅผ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฌถ์—ˆ์„ ๋•Œ ํ•ฉ์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ •๋‹ต์€ ํ•ญ์ƒ 231๋ณด๋‹ค ์ž‘๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

4
-1
2
1
3

์˜ˆ์ œ ์ถœ๋ ฅ 1

6

์˜ˆ์ œ ์ž…๋ ฅ 2

6
0
1
2
4
3
5

์˜ˆ์ œ ์ถœ๋ ฅ 2

27

์˜ˆ์ œ ์ž…๋ ฅ 3

1
-1

์˜ˆ์ œ ์ถœ๋ ฅ 3

-1

์˜ˆ์ œ ์ž…๋ ฅ 4

3
-1
0
1

์˜ˆ์ œ ์ถœ๋ ฅ 4

1

์˜ˆ์ œ ์ž…๋ ฅ 5

2
1
1

์˜ˆ์ œ ์ถœ๋ ฅ 5

2

๐Ÿ“– ๊ฐ€์ ธ๋‹ค ์“ฐ๊ธฐ

๋ธŒ๋ฃจํŠธ ํฌ์Šค(์‹คํŒจ)

์ฒ˜์Œ์—๋Š” ์ž…๋ ฅ ์ œํ•œ ์กฐ๊ฑด์„ ๋ณด๊ณ  ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋กœ ํ’€์–ด๋„ ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒ๊ฐ๋ณด๋‹ค ๊ตฌํ˜„ ๋ฐฉ์‹์ด ๋„ˆ๋ฌด ์–ด๋ ค์› ๊ณ  ์„ค๊ณ„์˜ ๊ฐ€๋‹ฅ์ด ์•ˆ ์žกํ˜”๋‹ค.

๊ทธ๋ฆฌ๋””

๊ทธ๋ž˜์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๋ฅผ ํ™•์ธํ•ด๋ณด์•˜์„ ๋•Œ ๊ทธ๋ฆฌ๋””๋ผ๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์ด ๋ฌธ์ œ์—์„œ ์™œ ๊ทธ๋ฆฌ๋””๋ฅผ ์‚ฌ์šฉํ• ๊นŒ๋ฅผ ๊ณ ์ฐฐํ•ด๋ณด์•˜๋‹ค.

2๊ฐœ์˜ ์ˆ˜๋ฅผ ๋ฌถ์–ด์„œ ์ตœ๋Œ€๋ฅผ ๋งž์ถ”์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ ๊ทธ ๋‘๊ฐœ๋ฅผ ๋ฝ‘์„ ๋•Œ ๋งˆ๋‹ค ์ตœ๋Œ€ํ•œ์˜ ์ด๋“์„ ๋ณด๋ฉด ์ตœ์ข…์ ์ธ ์ตœ๋Œ€๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ตœ๋Œ€ํ•œ์˜ ์ด๋“์„ ๋ณผ ์ˆ˜ ์žˆ์„๊นŒ๋ฅผ ์ƒ๊ฐํ•ด ๋ณธ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

๐Ÿ“ ๊ณผ์ • ์„ค๊ณ„/๊ด€๋ฆฌ

แ„‹แ…งแ†ซแ„‰แ…ณแ†ธแ„Œแ…กแ†ผ-69

  • ์–‘์ˆ˜๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ, ์Œ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
  • (์–‘์ˆ˜์–‘์ˆ˜) , (์Œ์ˆ˜์Œ์ˆ˜) ๐Ÿ‘‰๐Ÿป ์ด๋“
  • 0์€ ์Œ์ˆ˜๋ž‘ ๊ณฑํ•ด์ค˜์•ผ ์ด๋“
  • 1์€ ์–‘์ˆ˜๋“  ์Œ์ˆ˜๋“  ๊ทธ๋ƒฅ ๋”ํ•ด์ค˜์•ผ ์ด๋“

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป CODE

import sys
input = sys.stdin.readline

length = int(input())
positive = [] # ์–‘์ˆ˜ ๋ฐฐ์—ด
negative = [] # ์Œ์ˆ˜ ๋ฐฐ์—ด
one = [] # 1 ๋ฐฐ์—ด
answer = 0 

for i in range(length):
    num = int(input())

    if num == 1:
        one.append(num)
    else:
        if num > 0:
            positive.append(num)
        
        if num <= 0:
            negative.append(num)

positive.sort(reverse=True)
negative.sort()

if len(positive) % 2 == 1:
    answer += positive.pop()

for i in range(0,len(positive),2):
    answer += positive[i]*positive[i+1]

if len(negative) % 2 == 1:
    answer += negative.pop()

for i in range(0,len(negative),2):
    answer += negative[i]*negative[i+1]

answer += len(one)

print(answer)

ยฉ 2022. All rights reserved.

Powered by Hydejack v9.1.6