Skip to content

Commit 48f1dfc

Browse files
authored
Merge pull request #131 from YoonYn9915/main
YoonYn9915 / 1์›” 4์ฃผ์ฐจ / 3๋ฌธ์ œ
2 parents 0fb43e4 + b40029e commit 48f1dfc

3 files changed

+119
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
N = int(input())
2+
arr = list(map(int, input().split()))
3+
4+
arr_sorted = sorted(arr)
5+
6+
answer = 0
7+
8+
for i in range(N):
9+
start = 0
10+
end = len(arr_sorted) - 1
11+
12+
while start < end:
13+
if arr_sorted[start] + arr_sorted[end] == arr_sorted[i]:
14+
if start == i:
15+
start += 1
16+
elif end == i:
17+
end -= 1
18+
else:
19+
answer += 1
20+
break
21+
elif arr_sorted[start] + arr_sorted[end] > arr_sorted[i]:
22+
end -= 1
23+
else:
24+
start += 1
25+
26+
print(answer)
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from collections import deque
2+
3+
N, C = map(int, input().split())
4+
5+
arr = [0]
6+
arr = arr + list(map(int, input().split()))
7+
flag = 0
8+
9+
arr.sort()
10+
11+
12+
def binary_search(start, end, diff):
13+
while start <= end:
14+
mid = (start + end) // 2
15+
if arr[mid] == diff:
16+
return 1
17+
elif arr[mid] > diff:
18+
end = mid - 1
19+
else:
20+
start = mid + 1
21+
return 0
22+
23+
24+
start = 0
25+
end = len(arr) - 1
26+
27+
if C in arr:
28+
print(1)
29+
exit(0)
30+
31+
while start < end:
32+
arr_sum = arr[start] + arr[end]
33+
if arr_sum > C:
34+
end -= 1
35+
elif arr_sum == C:
36+
flag = 1
37+
break
38+
elif arr_sum < C:
39+
diff = C - arr_sum
40+
if diff != arr[start] and diff != arr[end] and binary_search(start, end, diff) == 1:
41+
flag = 1
42+
break
43+
start += 1
44+
45+
if flag == 1:
46+
print(1)
47+
else:
48+
print(0)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
from collections import deque
2+
3+
4+
def topology_sort(graph, inDegree):
5+
queue = deque()
6+
# ์œ„์ƒ์ •๋ ฌ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์„ ๋ฆฌ์ŠคํŠธ
7+
result = []
8+
9+
# ์ง„์ž…์ฐจ์ˆ˜๊ฐ€ 0์ธ ์ •์ ์„ ํ์— ์ถ”๊ฐ€
10+
for num in range(len(inDegree)):
11+
if inDegree[num] == 0:
12+
queue.append(num + 1)
13+
14+
while queue:
15+
now = queue.popleft()
16+
result.append(now)
17+
18+
# ์ง„์ž…์ฐจ์ˆ˜ ์—…๋ฐ์ดํŠธ
19+
for vertex in graph[now - 1]:
20+
inDegree[vertex - 1] -= 1
21+
# ์ง„์ž…์ฐจ์ˆ˜๊ฐ€ 0์ธ ์ •์ ์„ ํ์— ์ถ”๊ฐ€
22+
if inDegree[vertex - 1] == 0:
23+
queue.append(vertex)
24+
25+
return result
26+
27+
28+
# ์ •์ , ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜
29+
N, M = map(int, input().split())
30+
31+
# ์ง„์ž…์ฐจ์ˆ˜
32+
inDegree = [0] * N
33+
# ๊ทธ๋ž˜ํ”„
34+
graph = [[] for _ in range(N)]
35+
36+
for i in range(M):
37+
first, second = map(int, input().split())
38+
# ๊ทธ๋ž˜ํ”„ ๋ณ€๊ฒฝ
39+
graph[first - 1].append(second)
40+
# ์ง„์ž…์ฐจ์ˆ˜ ์ฆ๊ฐ€
41+
inDegree[second - 1] += 1
42+
43+
result = topology_sort(graph, inDegree)
44+
for ans in result:
45+
print(ans, end=" ")

0 commit comments

Comments
ย (0)