ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์์ด์ ๋ ์๋ฅผ ๋ฌถ์ด ๊ณฑํ ํ์ ๊ฐ๊ฐ์ ๊ฐ๋ค ํฉํ ๋, ์ต๋๊ฐ์ด ๋๋ ๊ฐ์ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ ์์๋ ์์ ๋ณ๋ก ๊ณฑํ์ฌ ์์๋ก ๋ง๋ค์ด์ฃผ๊ณ , 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
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 12919 A์ B 2 (0) | 2020.09.11 |
---|---|
๋ฐฑ์ค: 12904 A์ B (0) | 2020.09.10 |
๋ฐฑ์ค: 1541 ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2020.09.08 |
๋ฐฑ์ค: 10610 30 (0) | 2020.09.08 |
๋ฐฑ์ค: 1783 ๋ณ๋ ๋์ดํธ (0) | 2020.09.08 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ