Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Level2/Lessons12981/wowo0709.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ def solution(n, words):
for i in range(1,len(words)):
if words[i] in words[:i] or words[i-1][-1] != words[i][0]:
return [i%n + 1, i//n + 1]
return [0,0]
return [0,0]

'''
정확성 테스트
Expand Down
52 changes: 52 additions & 0 deletions Level2/Lessons42746/wowo0709.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# 가장 큰 수

# 초기 코드
def solution(nums):
if sum(nums) == 0: return '0'
nums = list(map(str,nums))
for i in range(len(nums)): nums[i] = [(nums[i]*4)[:4],len(nums[i])]
nums.sort(key=lambda x:int(x[0]),reverse=True)
return ''.join(list(map(lambda x:x[0][:x[1]],nums)))

'''
정확성 테스트
테스트 1 〉 통과 (78.34ms, 28.6MB)
테스트 2 〉 통과 (42.64ms, 20.1MB)
테스트 3 〉 통과 (133.51ms, 34.3MB)
테스트 4 〉 통과 (1.86ms, 10.8MB)
테스트 5 〉 통과 (68.14ms, 26.7MB)
테스트 6 〉 통과 (60.71ms, 24.4MB)
테스트 7 〉 통과 (0.04ms, 10.4MB)
테스트 8 〉 통과 (0.04ms, 10.4MB)
테스트 9 〉 통과 (0.03ms, 10.5MB)
테스트 10 〉 통과 (0.03ms, 10.4MB)
테스트 11 〉 통과 (0.00ms, 10.2MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'''

# 좀 더 깔끔한 코드
def solution(nums):
if sum(nums) == 0: return '0'
nums = list(map(str,nums))
nums.sort(key=lambda num:num*3, reverse=True)
return ''.join(nums)

'''
정확성 테스트
테스트 1 〉 통과 (43.61ms, 23.3MB)
테스트 2 〉 통과 (24.76ms, 17.1MB)
테스트 3 〉 통과 (57.37ms, 27.5MB)
테스트 4 〉 통과 (1.38ms, 10.5MB)
테스트 5 〉 통과 (38.19ms, 21.9MB)
테스트 6 〉 통과 (33.33ms, 20.3MB)
테스트 7 〉 통과 (0.02ms, 10.2MB)
테스트 8 〉 통과 (0.01ms, 10.3MB)
테스트 9 〉 통과 (0.01ms, 10.2MB)
테스트 10 〉 통과 (0.01ms, 10.2MB)
테스트 11 〉 통과 (0.00ms, 10.2MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'''
74 changes: 74 additions & 0 deletions Level2/Lessons42839/wowo0709.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# 소수 찾기

def solution(numbers):
from itertools import permutations
splited_nums = list(numbers)
made_nums = set()
for n in range(1,len(splited_nums)+1):
made_nums |= set(map(int, map(''.join,permutations(splited_nums,n))))

maxnum = max(made_nums)
is_prime = [False, False] + [True]*(maxnum-1)
for i in range(2,int(maxnum**0.5)+1):
if not is_prime[i]: continue
for j in range(2*i, maxnum+1, i):
is_prime[j] = False

return sum([True for num in made_nums if is_prime[num]])


'''
정확성 테스트
테스트 1 〉 통과 (0.34ms, 10.5MB)
테스트 2 〉 통과 (63.43ms, 20.3MB)
테스트 3 〉 통과 (0.03ms, 10.5MB)
테스트 4 〉 통과 (30.18ms, 15MB)
테스트 5 〉 통과 (373.02ms, 61.1MB)
테스트 6 〉 통과 (0.03ms, 10.4MB)
테스트 7 〉 통과 (0.26ms, 10.5MB)
테스트 8 〉 통과 (840.86ms, 94.9MB)
테스트 9 〉 통과 (0.05ms, 10.4MB)
테스트 10 〉 통과 (99.93ms, 25.3MB)
테스트 11 〉 통과 (8.34ms, 11.6MB)
테스트 12 〉 통과 (4.31ms, 11MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'''

def solution(numbers):
from itertools import permutations
splited_nums = list(numbers)
made_nums = set()
for n in range(1,len(splited_nums)+1):
made_nums |= set(map(int, map(''.join,permutations(splited_nums,n))))

# 소수 리스트를 따로 만들지 않고 소수가 아니면 바로 집합에서 제외
# continue 문이 없어서 시간은 더 걸림
maxnum = max(made_nums)
for i in range(2,int(maxnum**0.5)+1):
made_nums -= set(range(2*i, maxnum+1,i))

# 0과 1 제외
made_nums -= set([0,1])
return len(made_nums)


'''
정확성 테스트
테스트 1 〉 통과 (0.65ms, 10.5MB)
테스트 2 〉 통과 (222.60ms, 44.4MB)
테스트 3 〉 통과 (0.04ms, 10.4MB)
테스트 4 〉 통과 (81.88ms, 20MB)
테스트 5 〉 통과 (1272.84ms, 145MB)
테스트 6 〉 통과 (0.03ms, 10.4MB)
테스트 7 〉 통과 (0.72ms, 10.5MB)
테스트 8 〉 통과 (2463.58ms, 280MB)
테스트 9 〉 통과 (0.08ms, 10.4MB)
테스트 10 〉 통과 (343.40ms, 51.1MB)
테스트 11 〉 통과 (23.90ms, 13.7MB)
테스트 12 〉 통과 (12.55ms, 13.3MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'''
41 changes: 35 additions & 6 deletions Level2/Lessons42885/wowo0709.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,39 @@
# 구명보트
def solution(people, limit):
from collections import deque
dq = deque(sorted(people))
people.sort()
ans = 0
while people:
if dq[-1] + dq[0] <= limit: dq.pop();dq.popleft()
else: dq.pop()
start, end = 0, len(people)-1
while start <= end:
if people[start] + people[end] <= limit: start, end = start+1, end-1
else: end -= 1
ans += 1
return ans
return ans

'''
정확성 테스트
테스트 1 〉 통과 (0.80ms, 10.1MB)
테스트 2 〉 통과 (0.68ms, 10.1MB)
테스트 3 〉 통과 (0.57ms, 10.2MB)
테스트 4 〉 통과 (0.51ms, 10.3MB)
테스트 5 〉 통과 (0.31ms, 10.1MB)
테스트 6 〉 통과 (0.18ms, 10.2MB)
테스트 7 〉 통과 (0.46ms, 10.1MB)
테스트 8 〉 통과 (0.04ms, 10.2MB)
테스트 9 〉 통과 (0.05ms, 10MB)
테스트 10 〉 통과 (0.54ms, 10.2MB)
테스트 11 〉 통과 (0.47ms, 10.1MB)
테스트 12 〉 통과 (0.42ms, 10.2MB)
테스트 13 〉 통과 (0.58ms, 10.1MB)
테스트 14 〉 통과 (0.71ms, 10.2MB)
테스트 15 〉 통과 (0.07ms, 10.1MB)
효율성 테스트
테스트 1 〉 통과 (8.58ms, 10.6MB)
테스트 2 〉 통과 (8.86ms, 10.6MB)
테스트 3 〉 통과 (8.34ms, 10.6MB)
테스트 4 〉 통과 (9.34ms, 10.6MB)
테스트 5 〉 통과 (8.53ms, 10.5MB)
채점 결과
정확성: 75.0
효율성: 25.0
합계: 100.0 / 100.0
'''
2 changes: 1 addition & 1 deletion Level2/Lessons68645/wowo0709.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def solution(n):
snail[i][j] = num
num += 1

return list(chain.from_iterable(snail))
return list(chain.from_iterable(snail))


'''
Expand Down
2 changes: 1 addition & 1 deletion Level2/Lessons72412/wowo0709.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def solution(infos, querys):
합계: 100.0 / 100.0
'''

''' dict.get() 썼을
''' dict.get() 썼을
정확성 테스트
테스트 1 〉 통과 (1.07ms, 10.4MB)
테스트 2 〉 통과 (1.10ms, 10.4MB)
Expand Down
37 changes: 37 additions & 0 deletions Level2/Lessons76502/wowo0709.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 괄호 회전하기

def is_correct(parenthesis):
s = ['']
for p in parenthesis:
if p in [')','}',']']:
if s[-1]+p in ['()','{}','[]']: s.pop()
else: break
else: s.append(p)
# 맞지 않는 '닫는 괄호'가 없고, 남는 '여는 괄호'가 없을 때만 True
else: return True if len(s) == 1 else False
return False

def solution(s):
return sum([is_correct(s[i+1:]+s[:i+1]) for i in range(len(s))])


'''
정확성 테스트
테스트 1 〉 통과 (8.12ms, 10.3MB)
테스트 2 〉 통과 (4.09ms, 10.2MB)
테스트 3 〉 통과 (3.95ms, 10.2MB)
테스트 4 〉 통과 (5.90ms, 10.2MB)
테스트 5 〉 통과 (21.14ms, 10.2MB)
테스트 6 〉 통과 (8.11ms, 10.2MB)
테스트 7 〉 통과 (11.25ms, 10.3MB)
테스트 8 〉 통과 (15.56ms, 10.4MB)
테스트 9 〉 통과 (31.70ms, 10.2MB)
테스트 10 〉 통과 (46.02ms, 10.4MB)
테스트 11 〉 통과 (66.83ms, 10.3MB)
테스트 12 〉 통과 (0.04ms, 10.2MB)
테스트 13 〉 통과 (0.01ms, 10.3MB)
테스트 14 〉 통과 (0.01ms, 10.2MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'''