Skip to content

Commit e8dde89

Browse files
authored
Merge pull request #127 from learntosurf/main
feat: 1์›” 4์ฃผ์ฐจ ๋ฐœ์ œ ๋ฌธ์ œ ๋‚ด์šฉ
2 parents 6d96068 + 51a835e commit e8dde89

File tree

5 files changed

+77
-0
lines changed

5 files changed

+77
-0
lines changed

โ€Ž_WeeklyChallenges/W08-[TwoPointer]/Assignment_BOJ_18114_๋ธ”๋ž™ํ”„๋ผ์ด๋ฐ์ด.pyโ€Ž

Whitespace-only changes.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
## ๐Ÿš€ 1์›” 4์ฃผ์ฐจ (01/20) ์Šคํ„ฐ๋”” ๋ฐœ์ œ ์ฃผ์ œ: Two-Pointer
2+
> ๋ฐœ์ œ์ž: ์ •์ˆ˜๋ฏธ
3+
4+
### ๐Ÿ—‚๏ธ ์Šคํ„ฐ๋”” ์ž๋ฃŒ
5+
- PDF: [๋ฐ”๋กœ๊ฐ€๊ธฐ](./Study_BOJ_1253.pdf)
6+
![image](https://github.com/user-attachments/assets/aeebc15f-c536-4838-893e-3e2becb9b3aa)
7+
8+
9+
### ๐Ÿ“– ๋ฌธ์ œ
10+
- [๋ฐฑ์ค€ #1253. ์ข‹๋‹ค](https://www.acmicpc.net/problem/1253): ํˆฌํฌ์ธํ„ฐ / ๊ณจ๋“œ4
11+
- ์ •๋‹ต ์ฝ”๋“œ: [Study_BOJ_1253_์ข‹๋‹ค.py](./Study_BOJ_1253_์ข‹๋‹ค.py)
12+
13+
### ๐Ÿ’ป ๊ณผ์ œ
14+
- [๋ฐฑ์ค€ #8114. ๋ธ”๋ž™ ํ”„๋ผ์ด๋ฐ์ด](https://www.acmicpc.net/problem/18114): ๋ธŒ๋ฃจํŠธํฌ์Šค, ํˆฌํฌ์ธํ„ฐ / ๊ณจ๋“œ5
15+
- ์ •๋‹ต ์ฝ”๋“œ: [Assignment_BOJ_18114_๋ธ”๋ž™ํ”„๋ผ์ด๋ฐ์ด.py](./Assignment_BOJ_18114_๋ธ”๋ž™ํ”„๋ผ์ด๋ฐ์ด.py)
392 KB
Binary file not shown.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
N = int(input()) # ์ˆ˜์˜ ๊ฐœ์ˆ˜
5+
num = list(map(int, input().split())) # ์ž…๋ ฅ๋œ ์ˆซ์ž ๋ฆฌ์ŠคํŠธ
6+
num.sort() # ์ •๋ ฌ (ํˆฌํฌ์ธํ„ฐ ์‚ฌ์šฉ์„ ์œ„ํ•ด)
7+
8+
cnt = 0 # ์ข‹์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜
9+
for i in range(N):
10+
goal = num[i] # ํ˜„์žฌ ํ™•์ธํ•  ๊ฐ’
11+
start = 0
12+
end = N - 1
13+
14+
while start < end: # ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ต์ฐจํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
15+
# ํ˜„์žฌ ๋‘ ์ˆ˜์˜ ํ•ฉ์ด goal์ธ์ง€ ํ™•์ธ
16+
if num[start] + num[end] == goal:
17+
if start == i: # start ํฌ์ธํ„ฐ๊ฐ€ ํ˜„์žฌ ๊ฐ’(goal)์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ์ด๋™
18+
start += 1
19+
elif end == i: # end ํฌ์ธํ„ฐ๊ฐ€ ํ˜„์žฌ ๊ฐ’(goal)์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ์ด๋™
20+
end -= 1
21+
else: # ๋‘ ์ˆ˜์˜ ํ•ฉ์ด goal์ด๋ฉด์„œ ํ˜„์žฌ ๊ฐ’(goal)์„ ํฌํ•จํ•˜์ง€ ์•Š์„ ๋•Œ
22+
cnt += 1
23+
break
24+
25+
elif num[start] + num[end] > goal: # ํ•ฉ์ด goal๋ณด๋‹ค ํฌ๋ฉด ํฐ ๊ฐ’์„ ์ค„์—ฌ์•ผ ํ•˜๋ฏ€๋กœ end ๊ฐ์†Œ
26+
end -= 1
27+
28+
else: # ํ•ฉ์ด goal๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ž‘์€ ๊ฐ’์„ ํ‚ค์›Œ์•ผ ํ•˜๋ฏ€๋กœ start ์ฆ๊ฐ€
29+
start += 1
30+
31+
print(cnt)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
N = int(input()) # ์ˆ˜์˜ ๊ฐœ์ˆ˜
5+
num = list(map(int, input().split())) # ์ž…๋ ฅ๋œ ์ˆซ์ž ๋ฆฌ์ŠคํŠธ
6+
num.sort() # ์ •๋ ฌ (ํˆฌํฌ์ธํ„ฐ ์‚ฌ์šฉ์„ ์œ„ํ•ด)
7+
8+
cnt = 0 # ์ข‹์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜
9+
for i in range(N):
10+
goal = num[i] # ํ˜„์žฌ ํ™•์ธํ•  ๊ฐ’
11+
start = 0
12+
end = N - 1
13+
14+
while start < end: # ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ต์ฐจํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
15+
# ํ˜„์žฌ ๋‘ ์ˆ˜์˜ ํ•ฉ์ด goal์ธ์ง€ ํ™•์ธ
16+
if num[start] + num[end] == goal:
17+
if start == i: # start ํฌ์ธํ„ฐ๊ฐ€ ํ˜„์žฌ ๊ฐ’(goal)์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ์ด๋™
18+
start += 1
19+
elif end == i: # end ํฌ์ธํ„ฐ๊ฐ€ ํ˜„์žฌ ๊ฐ’(goal)์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ์ด๋™
20+
end -= 1
21+
else: # ๋‘ ์ˆ˜์˜ ํ•ฉ์ด goal์ด๋ฉด์„œ ํ˜„์žฌ ๊ฐ’(goal)์„ ํฌํ•จํ•˜์ง€ ์•Š์„ ๋•Œ
22+
cnt += 1
23+
break
24+
25+
elif num[start] + num[end] > goal: # ํ•ฉ์ด goal๋ณด๋‹ค ํฌ๋ฉด ํฐ ๊ฐ’์„ ์ค„์—ฌ์•ผ ํ•˜๋ฏ€๋กœ end ๊ฐ์†Œ
26+
end -= 1
27+
28+
else: # ํ•ฉ์ด goal๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ž‘์€ ๊ฐ’์„ ํ‚ค์›Œ์•ผ ํ•˜๋ฏ€๋กœ start ์ฆ๊ฐ€
29+
start += 1
30+
31+
print(cnt)

0 commit comments

Comments
ย (0)