Skip to content

Commit edadb77

Browse files
Merge pull request #1770 from CodingTestStudy2/변지협
[변지협] Day08
2 parents 2ec5f28 + 1f66252 commit edadb77

2 files changed

Lines changed: 71 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
'''
3+
1. 아이디어 :
4+
0과 1의 개수가 1 이하로 차이나면 ans에 넣는 식으로 구한다.
5+
6+
2. 시간복잡도 :
7+
o(n^2)
8+
9+
3. 자료구조/알고리즘 :
10+
완전탐색
11+
'''
12+
13+
class Solution(object):
14+
def countValidPrefixes(self, s):
15+
"""
16+
:type s: str
17+
:rtype: int
18+
"""
19+
20+
n = len(s)
21+
ans = 0
22+
23+
for i in range(n):
24+
selected = s[:i+1]
25+
one = len([i for i in selected if i == '1'])
26+
zero = len([i for i in selected if i == '0'])
27+
if one == zero or one + 1 == zero or one == zero + 1:
28+
ans += 1
29+
30+
return ans
31+
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
'''
2+
1. 아이디어 :
3+
prefix에 있는 단어를 완전 탐색으로 찾아서 바꾸는 형태로 진행한다.
4+
for i in lst 이렇게 하면 시간 초과 나는데
5+
for i in dic 이렇게 하면 시간 초과가 안난다.
6+
왜냐하면 dic은 해시맵이기 때문에 검색 시간이 o(1)이 걸리고, lst는 리스트기 때문에 검색 시간이 o(n)이 걸린다.
7+
8+
2. 시간복잡도 :
9+
o(n^2)
10+
11+
3. 자료구조/알고리즘 :
12+
완전탐색
13+
'''
14+
class Solution(object):
15+
def replaceWords(self, dictionary, sentence):
16+
"""
17+
:type dictionary: List[str]
18+
:type sentence: str
19+
:rtype: str
20+
"""
21+
ans = []
22+
dic = {}
23+
for d in dictionary:
24+
dic[d] = 0
25+
26+
for sen in sentence.split():
27+
tmp = ''
28+
for s in sen:
29+
tmp += s
30+
if tmp in dic:
31+
break
32+
33+
ans.append(tmp)
34+
35+
ans2 = ''
36+
for an in ans:
37+
ans2 += an + ' '
38+
39+
return ans2[:len(ans2)-1]
40+

0 commit comments

Comments
 (0)