๋ฌธ์
https://www.acmicpc.net/problem/1744
ํ์ด
# ๋ฐฑ์ค 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์ ๋ฐ๋ก ๋ํด์ฃผ๋๋ก ํ๋ค.
'๐๏ธ Algorithm > ๐ฉ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฉ [๋ฐฑ์ค] [Python] [Silver2] 11722๋ฒ_๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด (0) | 2023.03.31 |
---|---|
๐ฉ [๋ฐฑ์ค] [Python] [Gold4] 2636๋ฒ_์น์ฆ (0) | 2023.03.31 |
๐ฉ [๋ฐฑ์ค] [Python] [Gold2] 1202๋ฒ_๋ณด์ ๋๋ (0) | 2023.03.30 |
๐ฉ [๋ฐฑ์ค] [Python] [Gold4] 1715๋ฒ_์นด๋ ์ ๋ ฌํ๊ธฐ (0) | 2023.03.28 |
๐ฉ [๋ฐฑ์ค] [Python] [Silver1] 11660๋ฒ_๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5 (0) | 2023.03.25 |