Skip to content

Commit 2aaafab

Browse files
committed
2 parents 01f64a0 + 620d696 commit 2aaafab

17 files changed

Lines changed: 349 additions & 0 deletions
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import sys
2+
a,b,c = map(int,sys.stdin.readline().split())
3+
4+
def multi (a,n):
5+
if n == 1:
6+
return a%c
7+
else:
8+
tmp = multi(a,n//2)
9+
if n %2 ==0:
10+
return (tmp * tmp) % c
11+
else:
12+
return (tmp * tmp *a) %c
13+
14+
print(multi(a,b))
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
"""
2+
https://www.acmicpc.net/problem/5582
3+
# ์œ ํ˜• : dp , LCS(longest common sequence)
4+
LCSubstring ํŠน์ง•
5+
1. ๋ฌด์กฐ๊ฑด "์—ฐ์†๋œ" ๊ณตํ†ต ๋ฌธ์ž์—ด -> ํ•œ๋ฒˆ์ด๋ผ๋„ ๋‹ค๋ฅด๋ฉด dp =0๋กœ ์ดˆ๊ธฐํ™”,
6+
LCS(subsequence)
7+
- ๋ถ€๋ถ„์ˆ˜์—ด์€ ์—ฐ์†๋œ ๊ฐ’์ด ์•„๋‹˜ -> ์ตœ๋Œ€ ๊ณตํ†ต๋ถ€๋ถ„์ˆ˜์—ด์€ ๊ณ„์† ์œ ์ง€๋จ
8+
์กฐ๊ฑด
9+
- ํ•œ๊ธ€์ž์”ฉ ๋น„๊ตํ•จ
10+
(1) x[j] == y[i] ๊ฐ™์œผ๋ฉด -> dp[i][j] = max(๋Œ€๊ฐ์„  +1 , ์œ„) => dp
11+
(2) ๋‹ค๋ฅด๋ฉด ->0 ()
12+
13+
"""
14+
import sys
15+
x = list(sys.stdin.readline())[:-1]
16+
y= list(sys.stdin.readline())[:-1]
17+
dp = [[0 for _ in range(len(y))] for j in range(len(x))]
18+
19+
#2. Dp , LCS(longest-common-sequence)
20+
21+
for i in range(len(x)) :
22+
for j in range(len(y)) :
23+
24+
if i== 0 or j== 0 :
25+
if x[i] == y[j] : # ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
26+
dp[i][j] =1
27+
continue
28+
if x[i] == y[j] :
29+
dp[i][j] =dp[i-1][j-1] +1
30+
else :
31+
dp[i][j] = 0 #dp[i-1][j]
32+
33+
#3. answer์ด ๊ผญ ๋’ค๋กœ ์˜ค์ง€ ์•Š์Œ
34+
answer = 0
35+
for i in range(len(x)):
36+
print(dp[i])
37+
answer = max(max(dp[i]),answer)
38+
39+
print(answer)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
"""
2+
๋ฐฑ์ค€ #20542. ๋ฐ›์•„์“ฐ๊ธฐ/DP /๊ณจ๋“œ5
3+
https://www.acmicpc.net/problem/20542
4+
5+
(1) ๋ฌธ์ž๊ฐ€ ๊ฐ™์Œ -> ๋Œ€๊ฐ์„  = ํ˜„์œ„์น˜
6+
(2) ๋‹ค๋ฅธ ๋ฌธ์ž
7+
min (์™ผ์ชฝ[add] , ๋Œ€๊ฐ์„ [edit] , ์œ„) +1
8+
"""
9+
import sys
10+
N , M = map(int, sys.stdin.readline().split())
11+
predict =list(*map(str,sys.stdin.readline().split()))
12+
gt = list(*map(str,sys.stdin.readline().split()))
13+
print(predict , gt)
14+
# predict -> gt
15+
dp = [[0 for _ in range(len(gt)+1)] for k in range(len(predict)+1)]
16+
dp[0] = list(range(len(gt)+1))
17+
print(dp)
18+
for i in range(1,len(predict)+1):
19+
for j in range(len(gt)+1) :
20+
# ์ดˆ๊ธฐํ™”
21+
if j==0 :
22+
dp[i][j] = dp[i-1][j]+ 1 # ์œ„ +1
23+
continue
24+
25+
# dp ์ฑ„์šฐ๊ธฐ
26+
if predict[i] == gt[j]:
27+
dp[i][j] = dp[i-1][j-1]
28+
print(f"samep { dp}")
29+
else :
30+
dp[i][j] = 1 + min(dp[i-1][j-1] , dp[i][j-1] , dp[i-1][j])
31+
32+
print(dp)

โ€Ž_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: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
'''
2+
BOJ #1253. ์ข‹๋‹ค (๊ณจ๋“œ4)
3+
https://www.acmicpc.net/problem/1253
4+
์œ ํ˜•: Two-Pointer
5+
'''
6+
7+
import sys
8+
input = sys.stdin.readline
9+
10+
N = int(input()) # ์ˆ˜์˜ ๊ฐœ์ˆ˜
11+
num = list(map(int, input().split())) # ์ž…๋ ฅ๋œ ์ˆซ์ž ๋ฆฌ์ŠคํŠธ
12+
num.sort() # ์ •๋ ฌ (ํˆฌํฌ์ธํ„ฐ ์‚ฌ์šฉ์„ ์œ„ํ•ด)
13+
14+
cnt = 0 # ์ข‹์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜
15+
for i in range(N):
16+
goal = num[i] # ํ˜„์žฌ ํ™•์ธํ•  ๊ฐ’
17+
start = 0
18+
end = N - 1
19+
20+
while start < end: # ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ต์ฐจํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
21+
# ํ˜„์žฌ ๋‘ ์ˆ˜์˜ ํ•ฉ์ด goal์ธ์ง€ ํ™•์ธ
22+
if num[start] + num[end] == goal:
23+
if start == i: # start ํฌ์ธํ„ฐ๊ฐ€ ํ˜„์žฌ ๊ฐ’(goal)์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ์ด๋™
24+
start += 1
25+
elif end == i: # end ํฌ์ธํ„ฐ๊ฐ€ ํ˜„์žฌ ๊ฐ’(goal)์„ ๊ฐ€๋ฆฌํ‚ค๋ฉด ์ด๋™
26+
end -= 1
27+
else: # ๋‘ ์ˆ˜์˜ ํ•ฉ์ด goal์ด๋ฉด์„œ ํ˜„์žฌ ๊ฐ’(goal)์„ ํฌํ•จํ•˜์ง€ ์•Š์„ ๋•Œ
28+
cnt += 1
29+
break
30+
31+
elif num[start] + num[end] > goal: # ํ•ฉ์ด goal๋ณด๋‹ค ํฌ๋ฉด ํฐ ๊ฐ’์„ ์ค„์—ฌ์•ผ ํ•˜๋ฏ€๋กœ end ๊ฐ์†Œ
32+
end -= 1
33+
34+
else: # ํ•ฉ์ด goal๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ž‘์€ ๊ฐ’์„ ํ‚ค์›Œ์•ผ ํ•˜๋ฏ€๋กœ start ์ฆ๊ฐ€
35+
start += 1
36+
37+
print(cnt)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
T = int(input()) # ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜
5+
6+
for _ in range(T):
7+
# ์ˆ˜์ฒฉ1
8+
N = int(input())
9+
note1 = set(map(int, input().split()))
10+
# ์ˆ˜์ฒฉ2
11+
M = int(input())
12+
note2 = list(map(int, input().split()))
13+
14+
for num in note2:
15+
if num in note1:
16+
print(1)
17+
else:
18+
print(0)
19+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
K, N = map(int, input().split())
5+
lan = [int(input()) for _ in range(K)]
6+
7+
# ํƒ์ƒ‰ ๋Œ€์ƒ: ๋žœ์„ ์˜ ๊ธธ์ด
8+
start = 1
9+
end = max(lan)
10+
11+
while start <= end:
12+
mid = (start + end) // 2
13+
lines = 0 # ๋žœ์„ ์˜ ๊ฐœ์ˆ˜
14+
for i in lan:
15+
lines += i // mid
16+
if lines >= N: # ๋žœ์„ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์Œ (๋žœ์„ ์˜ ๊ธธ์ด๊ฐ€ ์งง์Œ)
17+
start = mid + 1
18+
else: # ๋žœ์„ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์Œ (๋žœ์„ ์˜ ๊ธธ์ด๊ฐ€ ๊น€)
19+
end = mid - 1
20+
21+
print(end)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import sys
2+
input = sys.stdin.readline
3+
from bisect import bisect_left, bisect_right
4+
5+
N, M = map(int, input().split())
6+
points = list(map(int, input().split()))
7+
lines = [tuple(map(int, input().split())) for _ in range(M)]
8+
9+
points.sort()
10+
11+
counts = []
12+
for start, end in lines:
13+
left = bisect_left(points, start)
14+
right = bisect_right(points, end)
15+
counts.append(right - left)
16+
17+
print("\n".join(map(str, counts)))

0 commit comments

Comments
ย (0)