Skip to content

Commit fc9e584

Browse files
committed
Add files via upload
1 parent e58ae83 commit fc9e584

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
string = input()
2+
bomb = input()
3+
4+
answer = ''
5+
6+
string = 's'*500000 + '4'*500000
7+
bomb = 'ssssssssssssssssss444444444444444444'
8+
for i in range(len(string)):
9+
answer+=string[i]
10+
if string[i] == bomb[-1]:
11+
if answer[-len(bomb):] == bomb:
12+
answer = answer[:-len(bomb)]
13+
14+
if answer == '':
15+
print('FRULA')
16+
else : print(answer)
17+

week14/bsw/보석 쇼핑.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# set 함수를 활용하려 했으나 시간복잡도가 O(N)인것을 고려해야 한다 -> 시간초과
2+
# dict의 길이를 활용하는 문제
3+
# dict를 활용하면 O(1)의 시간복잡도로 중복제거 기능을 활용 할 수 있음
4+
5+
def solution(gems):
6+
answer = []
7+
8+
cnt_gems = len(set(gems))
9+
cur_gems={}
10+
l, r = 0, 0
11+
12+
while l<len(gems) and r<len(gems):
13+
14+
if gems[r] not in cur_gems:
15+
cur_gems[gems[r]] = 1
16+
elif gems[r] in cur_gems:
17+
cur_gems[gems[r]] += 1
18+
19+
r+=1
20+
21+
#print(cur_gems)
22+
23+
if len(cur_gems) == cnt_gems:
24+
25+
while l<r and len(cur_gems) == cnt_gems:
26+
answer.append((l,r))
27+
if gems[l] not in cur_gems:
28+
break
29+
elif gems[l] in cur_gems:
30+
cur_gems[gems[l]] -= 1
31+
32+
if cur_gems[gems[l]] == 0:
33+
del cur_gems[gems[l]]
34+
35+
l+=1
36+
37+
answer.sort(key = lambda x : (x[1]-x[0], x[0]))
38+
return [answer[0][0]+1, answer[0][1]]

week14/bsw/합승 택시 요금.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# 가중치 그래프 -> 다익스트라
2+
#
3+
# 다른사람 풀이 보고 작성
4+
# 다익스트라 연습이 더 필요
5+
6+
def solution(n, s, a, b, fares):
7+
answer = 1e9
8+
INF = 1e9
9+
from heapq import heappush, heappop
10+
11+
graph=[[] for _ in range(n+1)]
12+
13+
for fare in fares:
14+
src, dst, cost = fare
15+
graph[src].append((dst, cost))
16+
graph[dst].append((src, cost))
17+
18+
def dijk(s, d):
19+
dists = [INF for i in range(n+1)]
20+
dists[s] = 0
21+
pq = []
22+
heappush(pq, (dists[s], s))
23+
24+
while pq:
25+
cur_dist, cur_dst = heappop(pq)
26+
27+
if dists[cur_dst] < cur_dist:
28+
continue
29+
30+
for new_dst, new_dist in graph[cur_dst]:
31+
32+
if cur_dist + new_dist < dists[new_dst]:
33+
dists[new_dst] = cur_dist + new_dist
34+
heappush(pq, (dists[new_dst], new_dst))
35+
36+
return dists[d]
37+
38+
for i in range(1, n+1):
39+
answer = min(dijk(s, i) + dijk(i,a) + dijk(i,b), answer)
40+
41+
return answer

0 commit comments

Comments
 (0)