Skip to content

Commit 620d696

Browse files
authored
Merge pull request #126 from YoonYn9915/main
YoonYn9915/1์›” 3์ฃผ์ฐจ /3๋ฌธ์ œ
2 parents bc1bd1b + e56f179 commit 620d696

3 files changed

+96
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
string1 = input()
2+
string2 = input()
3+
4+
dp = [[0] * len(string1) for _ in range(len(string2))]
5+
6+
for i in range(len(string2)):
7+
for j in range(len(string1)):
8+
# ๋‘ ๋ฌธ์ž์—ด์˜ i๋ฒˆ์งธ ๋ฌธ์ž์™€ j๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ ๊ฐ™์„๋•Œ
9+
if string2[i] == string1[j]:
10+
if i > 0 and j > 0:
11+
dp[i][j] = dp[i-1][j-1] + 1
12+
else:
13+
dp[i][j] = 1
14+
else:
15+
dp[i][j] = 0
16+
17+
# dpํ…Œ์ด๋ธ”์—์„œ ์ตœ๋Œ“๊ฐ’ ์ฐพ๊ธฐ
18+
print(max(max(row) for row in dp))
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
N, M = map(int, input().split())
2+
inp = input()
3+
answer = input()
4+
5+
dp = [[0] * (M + 1) for _ in range(N + 1)]
6+
7+
for i in range(N + 1):
8+
for j in range(M + 1):
9+
10+
if i == 0 or j == 0:
11+
if i == 0 and j == 0:
12+
continue
13+
# ๋นˆ ๋ฌธ์ž์—ด์—์„œ ์ •๋‹ต ๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋Š” ์ตœ์†Œ ํŽธ์ง‘ ๊ฑฐ๋ฆฌ
14+
if i == 0 and j != 0:
15+
dp[i][j] = dp[i][j - 1] + 1
16+
# ๋นˆ ๋ฌธ์ž์—ด์—์„œ ๋‹ต์•ˆ ๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋Š” ์ตœ์†Œ ํŽธ์ง‘ ๊ฑฐ๋ฆฌ
17+
if i != 0 and j == 0:
18+
dp[i][j] = dp[i - 1][j] + 1
19+
else:
20+
# ๋น„๊ต ๋ฌธ์ž๊ฐ€ ๊ฐ™์€์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จ
21+
if inp[i-1] == answer[j-1]:
22+
# ๊ฐ™์œผ๋ฉด ์ขŒ์ƒ๋‹จ ๋Œ€๊ฐ์„  ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ด
23+
dp[i][j] = dp[i - 1][j - 1]
24+
else:
25+
# ๋น„๊ต ๋ฌธ์ž๊ฐ€ ๋‹ฌ๋ผ๋„ i๋‚˜ v๋ฅผ ํœ˜๊ฐˆ๊ฒจ ์“ด ๊ฒฝ์šฐ
26+
if inp[i-1] == 'i':
27+
if answer[j-1] == 'l' or answer[j-1] == 'j':
28+
dp[i][j] = dp[i - 1][j - 1]
29+
continue
30+
elif inp[i-1] == 'v':
31+
if answer[j-1] == 'w':
32+
dp[i][j] = dp[i - 1][j - 1]
33+
continue
34+
35+
# ๋น„๊ต๋ฌธ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์œ„, ์ขŒ์ธก, ์ขŒ์ƒ๋‹จ ๋Œ€๊ฐ์„  ๊ฐ’ ์ค‘ ์ตœ์†Œ๊ฐ’์„ ์„ ํƒํ•œ ํ›„ 1์„ ๋”ํ•ด์ค€๋‹ค.
36+
dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - 1], dp[i][j - 1]) + 1
37+
38+
print(dp[N][M])
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
'''
2+
1. ๋ฌธ์ž์—ด ์ž…๋ ฅ๋ฐ›๊ธฐ
3+
2. a์˜ ๊ฐœ์ˆ˜๋งŒํผ ์œˆ๋„์šฐ ํฌ๊ธฐ ๊ฐ€์ ธ๊ฐ„ ํ›„
4+
3. ํ•˜๋‚˜์”ฉ ์˜†์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์œˆ๋„์šฐ ์•ˆ์˜ b๊ฐ€ ๊ฐ€์žฅ ์ตœ์†Œ๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„์„ ๊ตฌํ•จ
5+
'''
6+
7+
8+
def countB(str):
9+
cnt = 0
10+
for char in str:
11+
if char == 'b':
12+
cnt += 1
13+
14+
return cnt
15+
16+
17+
str = input()
18+
cnt = 0
19+
20+
# ๋‹ต ์ €์žฅ ๋ณ€์ˆ˜
21+
ans = int(1e9)
22+
23+
for char in str:
24+
if char == 'a':
25+
cnt += 1
26+
27+
28+
# a์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฌธ์ž์—ด ์ˆœํšŒํ•˜๋ฉด์„œ ์œˆ๋„์šฐ ์•ˆ์˜ b๊ฐ€ ๋ช‡๊ฐœ์ธ์ง€ ํ™•์ธ
29+
for i in range(len(str)):
30+
# ์›ํ˜•์„ ๊ณ ๋ คํ•˜์—ฌ i + cnt ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ์•ž์—์„œ ๊ฐ€์ ธ์˜ด
31+
if i + cnt > len(str):
32+
tmp = str[i:]
33+
tmp2 = str[0: (i + cnt)-len(str)]
34+
b_cnt = countB(tmp + tmp2)
35+
else:
36+
tmp = str[i:i + cnt]
37+
b_cnt = countB(tmp)
38+
ans = min(ans, b_cnt)
39+
40+
print(ans)

0 commit comments

Comments
ย (0)