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

[๋ฐฑ์ค€/Python] 1940๋ฒˆ ์ฃผ๋ชฝ ๋ณธ๋ฌธ

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

[๋ฐฑ์ค€/Python] 1940๋ฒˆ ์ฃผ๋ชฝ

์ฅฌ์Šค์ด 2023. 1. 29. 00:32
728x90

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

์ฃผ๋ชฝ์€ ์ฒ ๊ธฐ๊ตฐ์„ ์–‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ์— ๋‚˜์„ฐ๋‹ค. ๊ทธ๋ž˜์„œ ์•ผ์ฒ ๋Œ€์žฅ์„ ํ†ตํ•ด ์ฒ ๊ธฐ๊ตฐ์ด ์ž…์„ ๊ฐ‘์˜ท์„ ๋งŒ๋“ค๊ฒŒ ํ•˜์˜€๋‹ค. ์•ผ์ฒ ๋Œ€์žฅ์€ ์ฃผ๋ชฝ์˜ ๋ช…์— ๋”ฐ๋ฅด๊ธฐ ์œ„ํ•˜์—ฌ ์—ฐ๊ตฌ์— ์ฐฉ์ˆ˜ํ•˜๋˜ ์ค‘ ์•„๋ž˜์™€ ๊ฐ™์€ ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ฐ‘์˜ท์„ ๋งŒ๋“œ๋Š” ์žฌ๋ฃŒ๋“ค์€ ๊ฐ๊ฐ ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ‘์˜ท์€ ๋‘ ๊ฐœ์˜ ์žฌ๋ฃŒ๋กœ ๋งŒ๋“œ๋Š”๋ฐ ๋‘ ์žฌ๋ฃŒ์˜ ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๋ฅผ ํ•ฉ์ณ์„œ M(1 ≤ M ≤ 10,000,000)์ด ๋˜๋ฉด ๊ฐ‘์˜ท์ด ๋งŒ๋“ค์–ด ์ง€๊ฒŒ ๋œ๋‹ค. ์•ผ์ฒ ๋Œ€์žฅ์€ ์ž์‹ ์ด ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ์žฌ๋ฃŒ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐ‘์˜ท์„ ๋ช‡ ๊ฐœ๋‚˜ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. ์ด๋Ÿฌํ•œ ๊ถ๊ธˆ์ฆ์„ ํ’€์–ด ์ฃผ๊ธฐ ์œ„ํ•˜์—ฌ N(1 ≤ N ≤ 15,000) ๊ฐœ์˜ ์žฌ๋ฃŒ์™€ M์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋ช‡ ๊ฐœ์˜ ๊ฐ‘์˜ท์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

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

์ฒซ์งธ ์ค„์—๋Š” ์žฌ๋ฃŒ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 15,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” ๊ฐ‘์˜ท์„ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ ์ˆ˜ M(1 ≤ M ≤ 10,000,000) ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ์…‹์งธ ์ค„์—๋Š” N๊ฐœ์˜ ์žฌ๋ฃŒ๋“ค์ด ๊ฐ€์ง„ ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๋“ค์ด ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๋Š” 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

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

์ฒซ์งธ ์ค„์— ๊ฐ‘์˜ท์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


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

n = int(input())	#์žฌ๋ฃŒ์˜ ์ˆ˜
m = int(input())	#๊ฐ‘์˜ท์„ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ ์ˆ˜
serialN = list(map(int, input().split()))	 #์žฌ๋ฃŒ์˜ ๊ณ ์œ ๋ฒˆํ˜ธ

serialN.sort()

cnt = 0
s, e = 0, n-1

while s < e:
    if serialN[s] + serialN[e] == m:
        cnt += 1
        s += 1
        e -= 1
    elif serialN[s] + serialN[e] < m:
        s += 1
    else:
        e -= 1
print(cnt)

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

์ž…๋ ฅ ๋ฐ›์€ serialN์„ sort() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ •๋ ฌํ•ด์ฃผ์—ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘๊ณผ ๋์˜ ์ธ๋ฑ์Šค๊ฐ’์„ ๊ฐ๊ฐ s์™€ e๋กœ ์ •์˜ํ–ˆ๋‹ค.

 

s < e์ผ ๋™์•ˆ while๋ฌธ์„ ์‹คํ–‰์‹œํ‚ค๋Š”๋ฐ ์ด๋•Œ, serialN[s]์™€ serialN[e]์˜ ํ•ฉ์ด m์ด๋ผ๋ฉด ๊ฐ‘์˜ท์˜ ๊ฐฏ์ˆ˜์ธ cnt์˜ ๊ฐ’์„ ํ•˜๋‚˜ ๋Š˜๋ ค์ฃผ๊ณ  s๋Š” +1, e๋Š” -1 ํ•ด์ค€๋‹ค. 

 

๋‘ ์ธ๋ฑ์Šค์˜ ํ•ฉ์ด m๋ณด๋‹ค ์ž‘๋‹ค๋ฉด s์˜ ๊ฐ’์„ +1 ํ•ด์ค˜์„œ serialN[s]์˜ ๊ฐ’์„ ํ‚ค์›Œ์ฃผ๊ณ , ๋‘ ์ธ๋ฑ์Šค์˜ ํ•ฉ์ด m๋ณด๋‹ค ํฌ๋ฉด e์˜ ๊ฐ’์„ -1ํ•ด์ค˜์„œ serialN[e]์˜ ๊ฐ’์„ ์ค„์—ฌ์ฃผ๋ฉฐ ๊ฐ‘์˜ท์ด ๋งŒ๋“ค์–ด์งˆ ๊ฒฝ์šฐ๋ฅผ ์ฐพ๋Š”๋‹ค.

728x90
Comments