๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold4] 1744๋ฒˆ_์ˆ˜ ๋ฌถ๊ธฐ

Dbswnstjd 2023. 3. 31. 12:06

๋ฌธ์ œ

https://www.acmicpc.net/problem/1744

 

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

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

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 1744๋ฒˆ ๋ฌธ์ œ - ์ˆ˜ ๋ฌถ๊ธฐ
n = int(input())

minus_list = []
plus_list = []
one_list = []
answer = 0
for i in range(n):
    num = int(input())
    if num <= 0:
        minus_list.append(num)
    elif num > 1:
        plus_list.append(num)
    else:
        one_list.append(num)
plus_list.sort(reverse=True)
minus_list.sort()

len_plus = len(plus_list)
len_minus = len(minus_list)

if len_plus % 2 == 1: # ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ 
    answer += plus_list[-1]
    for j in range(0, len_plus-1, 2):
        answer += plus_list[j] * plus_list[j+1]
else:
    for j in range(0, len_plus, 2):
        answer += plus_list[j] * plus_list[j+1]

if len_minus % 2 == 1:
    answer += minus_list[-1]
    for j in range(0, len_minus-1, 2):
        answer += minus_list[j] * minus_list[j+1]
else:
    for j in range(0, len_minus, 2):
        answer += minus_list[j] * minus_list[j+1]
    
for i in one_list:
    answer += i

print(answer)

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋ถ„๋ฅ˜๋˜์–ด ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. 

 

์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์Œ์ˆ˜์™€ ์–‘์ˆ˜๋ฅผ ๋‚˜๋ˆ„๊ณ  ๊ฐœ์ˆ˜๊ฐ€ ์ง์ˆ˜์ธ์ง€ ํ™€์ˆ˜์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์Œ์ˆ˜*์Œ์ˆ˜ = ์–‘์ˆ˜ ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์Œ์ˆ˜์™€ ์–‘์ˆ˜๋ฅผ ๋”ฐ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๊ณ„์‚ฐํ•œ๋‹ค.

์Œ์ˆ˜๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ, ์–‘์ˆ˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•ด์ค€๋‹ค. 

์ง์ˆ˜๋ผ๋ฉด 2๊ฐœ์”ฉ ๋ฌถ์–ด์„œ ๋‚จ๋Š” ๋ถ€๋ถ„์ด ์—†์–ด์„œ ๋ชจ๋‘ ๋ฌถ์–ด์„œ ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

๋ฐ˜๋ฉด ํ™€์ˆ˜๋ผ๋ฉด  ์ •๋ ฌ์„ ํ•ด์ฃผ์–ด์„œ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚จ๊ฒŒ ๋˜๋Š” ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๊ทธ๋ƒฅ ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

1์€ ๊ณฑํ•˜๊ธฐ ๋ณด๋‹ค ๋”ํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— 1์€ ๋”ฐ๋กœ ๋”ํ•ด์ฃผ๋„๋ก ํ•œ๋‹ค.