์ด์ ์๊ณ ๋ฆฌ์ฆ์ ํ ๋ ๋ง๋ค ์ด๋ค ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํ์๋์ง ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค.
๊ธฐ๋กํ๋ฉด์ ํ์ด ๋ฐฉ๋ฒ๋ ๋ค์ ์ ๋ฆฌํ๊ณ , ๊ฐ๋ ๋ ๋ค์ ธ๋ด์ผ์ง ~
์๋ฌดํผ ์๊ณ ๋ฆฌ์ฆ ์ฒซ ๊ฒ์๋ฌผ์ ๋ค์์ฃผ ์คํฐ๋ ๋ฌธ์ ์ธ ๋ฐฑ์ค 1253๋ฒ ์ข๋ค์ด๋ค.
N๊ฐ์ ์ ์ค์์ ์ด๋ค ์๊ฐ ๋ค๋ฅธ ์ ๋ ๊ฐ์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ค๋ฉด ๊ทธ ์๋ฅผ โ์ข๋ค(GOOD)โ๊ณ ํ๋ค.
N๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ฉด ๊ทธ ์ค์์ ์ข์ ์์ ๊ฐ์๋ ๋ช ๊ฐ์ธ์ง ์ถ๋ ฅํ๋ผ.
์์ ์์น๊ฐ ๋ค๋ฅด๋ฉด ๊ฐ์ด ๊ฐ์๋ ๋ค๋ฅธ ์์ด๋ค.
์ฒซ์งธ ์ค์๋ ์์ ๊ฐ์ N(1 โค N โค 2,000), ๋ ๋ฒ์งธ ์ค์๋ i๋ฒ์งธ ์๋ฅผ ๋ํ๋ด๋ Ai๊ฐ N๊ฐ ์ฃผ์ด์ง๋ค. (|Ai| โค 1,000,000,000, Ai๋ ์ ์)
์ข์ ์์ ๊ฐ์๋ฅผ ์ฒซ ๋ฒ์งธ ์ค์ ์ถ๋ ฅํ๋ค.
10
1 2 3 4 5 6 7 8 9 10
8
N = int(input())
numbers = sorted(list(map(int, input().split())))
answer = 0
nums = []
for i in range(N):
for j in range(N):
if i != j and numbers[i] + numbers[j] in numbers:
nums.append(numbers[i] + numbers[j])
nums = sorted(nums)
for num in nums:
left = 0
right = len(numbers) - 1
while left != right:
tmp = numbers[left] + numbers[right]
if tmp == num:
answer += 1
break
elif tmp < num:
left += 1
elif tmp > num:
right -= 1
print(answer)
python์ผ๋ก๋ ์๊ฐ์ด๊ณผ, pypy๋ก๋ ํ๋ ธ์ต๋๋ค. ๊ฐ ๋ด๋ค.๋ฌธ์ ๋, ์๊ฐ ์ค๋ณต์ด ๋๋ฉด ์๋๋ค๋ ๊ฒ.
์๋ฅผ ๋ค์ด ์
๋ ฅ ๋ฐฐ์ด์ด 0 0 1 ์ด๋ผ๋ฉด, 0 0 ์ด ๋ํด์ง๋ฉด ์ํํ ๋ 0 0 ์ ๋นผ์ผํ๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด 0 0 ์ ๋ํ๋ฉด 0์ด ๋์ค๊ณ ์์์ ๋ง๋ ์งํฉ๋ฆฌ์คํธ์ ์กด์ฌํ๋ฏ๋ก ์ข์ ์๋ก ์นด์ดํ
์ด ๋๋ค.
์ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํ์ฌ ๋ค์ ์ฝ๋๋ฅผ ์ง๋ณด์๋ค.
๋ฏธ๋ฆฌ ์ข์ ์๊ฐ ๋ ์ ์๋ ์งํฉ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด ๋์ง ์๊ณ , ํ๋์ ๋ฆฌ์คํธ์์ ์ธ๋ฑ์ค๊ฐ ๊ฒน์น์ง ์๋ ์กฐ๊ฑด์ ์ถ๊ฐํ์ฌ ํ์๋ค.
์ฝ๋๋ ์๋์ ๊ฐ๋ค.
N = int(input())
numbers = sorted(list(map(int, input().split())))
answer = 0
for i in range(N):
number = numbers[i]
left = 0
right = N - 1
while left != right:
tmp = numbers[left] + numbers[right]
if i != left and i != right and tmp == number:
answer += 1
break
elif tmp <= number:
left += 1
elif tmp >= number:
right -= 1
print(answer)
tmp == number ์ธ ๊ฒฝ์ฐ์ ์กฐ๊ฑด์ ๋ ์ถ๊ฐํ์ฌ ์ธ๋ฑ์ค๊ฐ ์ด๋ํ๊ฒ ๋ง๋ค์ด์ฃผ์๋ค.N = int(input())
numbers = sorted(list(map(int, input().split())))
answer = 0
for i in range(N):
number = numbers[i]
left = 0
right = N - 1
while left != right:
tmp = numbers[left] + numbers[right]
if tmp == number:
if i != left and i != right:
answer += 1
break
elif i == left:
left += 1
else:
right -= 1
elif tmp <= number:
left += 1
elif tmp >= number:
right -= 1
print(answer)

์ด์ ๊ทธ๋๋ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ์ด๋ค ํ์ด๋ฐฉ๋ฒ์ธ์ง ๊ธ๋ฐฉ ๋ ์ค๋ฅธ๋ค ! ๋ง์ด ๋ฐ์ ํ๋ค.
ํ์ง๋ง ์ค๊ณ ๋จ๊ณ์์ ํ์ ์ด ์๋ ๊ฒ ๊ฐ๋ค. ์์ ๋ ๊ธ๋ฐฉ ํต๊ณผํ๋๋ฐ ์ ๋ต๊น์ง ๊ฐ๋๋ฐ ์๊ฐ์ด ๊ฝค ๊ฑธ๋ฆฐ๋ค. ์ข ๋ ์นจ์ฐฉํ๊ณ ์น๋ฐํ๊ฒ ํด๋ต์ ์ค๊ณํ๊ณ ์ฝ๋๋ฅผ ์ง๋๋ก ํด๋ด์ผ๊ฒ ๋น.
์ธํผ 2ํ๊ธฐ ํ๋ฉด์ ์๊ณ ๋ฆฌ์ฆ์ ์๋ ๋ณด๋ค ์ํํ๋๋ฐ, ๊ทธ๋๋ ์์๋ฑ๊น์ผ ์คํฐ๋ ํ๋ฉด์ ์นด์นด์ค ๊ธฐ์ถ์ ๊พธ์คํ ํผ ๋๋ถ์ธ์ง ์๋ ์๋ ์ ๋ชปํ๋ ํฌํฌ์ธํฐ๊ฐ ์ด์ ๋ ์ข ์ฝ๊ฒ ๋๊ปด์ง๋ค !!!
๋๋ถ์ ์ ํ ์ ์์์ต๋๋ค! ๊ฐ์ฌํฉ๋๋ค~