๐Ÿ‘ฉ๐Ÿป‍๐ŸŒพ

[๋ฐฑ์ค€/Python] 1253๋ฒˆ ์ข‹์€ ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๋ณธ๋ฌธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€/Python] 1253๋ฒˆ ์ข‹์€ ์ˆ˜ ๊ตฌํ•˜๊ธฐ

์ฅฌ์Šค์ด 2023. 1. 31. 00:13
728x90

1๏ธโƒฃ๋ฌธ์ œ ์„ค๋ช…

N๊ฐœ์˜ ์ˆ˜ ์ค‘์—์„œ ์–ด๋–ค ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ์ˆ˜ ๋‘ ๊ฐœ์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ ์ˆ˜๋ฅผ “์ข‹๋‹ค(GOOD)”๊ณ  ํ•œ๋‹ค.

N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๊ทธ ์ค‘์—์„œ ์ข‹์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋Š” ๋ช‡ ๊ฐœ์ธ์ง€ ์ถœ๋ ฅํ•˜๋ผ.

์ˆ˜์˜ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅด๋ฉด ๊ฐ’์ด ๊ฐ™์•„๋„ ๋‹ค๋ฅธ ์ˆ˜์ด๋‹ค.

2๏ธโƒฃ์ž…๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 2,000), ๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” i๋ฒˆ์งธ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Ai๊ฐ€ N๊ฐœ ์ฃผ์–ด์ง„๋‹ค. (|Ai| ≤ 1,000,000,000, Ai๋Š” ์ •์ˆ˜)

3๏ธโƒฃ์ถœ๋ ฅ

์ข‹์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ถœ๋ ฅํ•œ๋‹ค.


๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป์ž‘์„ฑํ•œ ์ฝ”๋“œ

import sys

input = sys.stdin.readline

n = int(input())	# ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ๊ฐœ์ˆ˜
num = list(map(int, input().split()))	#์ž…๋ ฅ ๋ฐ›์€ n๊ฐœ์˜ ๋ฐ์ดํ„ฐ
num.sort()
cnt = 0

for i in range(n):
    good = num[i]
    s = 0
    e = n-1
    while s < e:
        if num[s] + num[e] == good:
            if s != i and e != i:
                cnt += 1
                break
            elif s == i:
                s += 1
            elif e == i:
                e -= 1
        elif num[s]+num[e] < good:
            s += 1
        else:
            e -= 1
            
print(cnt)

๐Ÿ’ก์ฝ”๋“œ ์„ค๋ช…

s์™€ e ๋‘๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

 

์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์—์„œ ์ž๊ธฐ ์ž์‹ ์„ ์ข‹์€ ์ˆ˜ ๋งŒ๋“ค๊ธฐ์— ํฌํ•จํ•˜๋ฉด ์•ˆ๋˜๋ฏ€๋กœ num[s] + num[e] == good์ผ ๋•Œ,  if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ s์™€ e๊ฐ€ i๊ฐ€ ์•„๋‹Œ์ง€ ํ™•์ธํ•ด์ค˜์•ผํ•œ๋‹ค.

 

๋‘˜ ๋‹ค i๊ฐ€ ์•„๋‹ˆ๊ณ  ๋‘ ์ธ๋ฑ์Šค๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ๋ฐ์ดํ„ฐ์˜ ํ•ฉ์ด ์ข‹์€ ์ˆ˜๊ฐ€ ๋  ๋•Œ cnt += 1์„ ํ•ด์ฃผ๊ณ ,

 

s์™€ e ๋‘˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ i์™€ ๊ฐ™์„ ๋•Œ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์กฐ์ •ํ•ด์„œ ์ž๊ธฐ ์ž์‹ ์„ ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  num[s] + num[e] < good์ผ ๋•Œ๋Š”, s += 1 ํ•ด์ฃผ์–ด ์ž‘์€ ๊ฐ’์„ ๋Š˜๋ ค์ฃผ๊ณ 

 

num[s] + num[e]  > good์ผ ๋•Œ๋Š”, e -= 1 ํ•ด์ฃผ์–ด ํฐ ๊ฐ’์„ ์ค„์—ฌ์ฃผ์–ด good์˜ ๊ฐ’์— ๊ฐ€๊นŒ์›Œ์ง€๋„๋ก ํฌ์ธํ„ฐ๋ฅผ ์กฐ์ •ํ•ด์ค€๋‹ค.

728x90
Comments