๐ฉ๐ป๐พ
[๋ฐฑ์ค/Python] 1940๋ฒ ์ฃผ๋ชฝ ๋ณธ๋ฌธ
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]์ ๊ฐ์ ์ค์ฌ์ฃผ๋ฉฐ ๊ฐ์ท์ด ๋ง๋ค์ด์ง ๊ฒฝ์ฐ๋ฅผ ์ฐพ๋๋ค.
'์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/Python] 2018๋ฒ ์ฐ์๋ ์์ฐ์์ ํฉ ๊ตฌํ๊ธฐ (0) | 2023.01.29 |
---|---|
[๋ฐฑ์ค/Python] 10986๋ฒ ๋๋จธ์ง (0) | 2023.01.29 |
[๋ฐฑ์ค/Python] 11660๋ฒ ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 2 (0) | 2023.01.28 |
[๋ฐฑ์ค/Python] 11659๋ฒ ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ (0) | 2023.01.24 |
[๋ฐฑ์ค/Python] 1546๋ฒ ํ๊ท (0) | 2023.01.24 |