From b11b730bd4729c725c25f8056f791d34b4750baf Mon Sep 17 00:00:00 2001 From: wowo0709 Date: Sat, 14 Aug 2021 18:29:32 +0900 Subject: [PATCH 1/4] upload programmers 42839 --- Level2/Lessons42839/wowo0709.py | 74 +++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Level2/Lessons42839/wowo0709.py diff --git a/Level2/Lessons42839/wowo0709.py b/Level2/Lessons42839/wowo0709.py new file mode 100644 index 0000000..4be2df3 --- /dev/null +++ b/Level2/Lessons42839/wowo0709.py @@ -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 +''' \ No newline at end of file From 6272f983e4ba51e388f5fe3eac445de438694e88 Mon Sep 17 00:00:00 2001 From: wowo0709 Date: Sun, 15 Aug 2021 11:22:53 +0900 Subject: [PATCH 2/4] upload programmers 76502 --- Level2/Lessons76502/wowo0709.py | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Level2/Lessons76502/wowo0709.py diff --git a/Level2/Lessons76502/wowo0709.py b/Level2/Lessons76502/wowo0709.py new file mode 100644 index 0000000..83a8996 --- /dev/null +++ b/Level2/Lessons76502/wowo0709.py @@ -0,0 +1,40 @@ +# 괄호 회전하기 + +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))]) + ans = 0 + for i in range(len(s)): ans += is_correct(s[i+1:]+s[:i+1]) + return ans + + +''' +정확성 테스트 +테스트 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 +''' \ No newline at end of file From fe237bc3831c676a30bcb5b398ce1638a5f3276c Mon Sep 17 00:00:00 2001 From: wowo0709 Date: Mon, 16 Aug 2021 16:34:27 +0900 Subject: [PATCH 3/4] upload programmers 42746 --- Level2/Lessons42746/wowo0709.py | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Level2/Lessons42746/wowo0709.py diff --git a/Level2/Lessons42746/wowo0709.py b/Level2/Lessons42746/wowo0709.py new file mode 100644 index 0000000..6f9aa39 --- /dev/null +++ b/Level2/Lessons42746/wowo0709.py @@ -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 +''' \ No newline at end of file From 6b1b24dcee659d5e0c7648af7b814749797e4fd7 Mon Sep 17 00:00:00 2001 From: wowo0709 Date: Tue, 24 Aug 2021 21:27:55 +0900 Subject: [PATCH 4/4] update programmers 5 --- Level2/Lessons12981/wowo0709.py | 2 +- Level2/Lessons42885/wowo0709.py | 41 ++++++++++++++++++++++++++++----- Level2/Lessons68645/wowo0709.py | 2 +- Level2/Lessons72412/wowo0709.py | 2 +- Level2/Lessons76502/wowo0709.py | 5 +--- 5 files changed, 39 insertions(+), 13 deletions(-) diff --git a/Level2/Lessons12981/wowo0709.py b/Level2/Lessons12981/wowo0709.py index c9ed1e3..ab9e25c 100644 --- a/Level2/Lessons12981/wowo0709.py +++ b/Level2/Lessons12981/wowo0709.py @@ -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] ''' 정확성 테스트 diff --git a/Level2/Lessons42885/wowo0709.py b/Level2/Lessons42885/wowo0709.py index 56e11d5..cdbb6c7 100644 --- a/Level2/Lessons42885/wowo0709.py +++ b/Level2/Lessons42885/wowo0709.py @@ -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 \ No newline at end of file + 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 +''' \ No newline at end of file diff --git a/Level2/Lessons68645/wowo0709.py b/Level2/Lessons68645/wowo0709.py index b8dd0ee..bfd8135 100644 --- a/Level2/Lessons68645/wowo0709.py +++ b/Level2/Lessons68645/wowo0709.py @@ -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)) ''' diff --git a/Level2/Lessons72412/wowo0709.py b/Level2/Lessons72412/wowo0709.py index cb1dbf8..e058c53 100644 --- a/Level2/Lessons72412/wowo0709.py +++ b/Level2/Lessons72412/wowo0709.py @@ -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) diff --git a/Level2/Lessons76502/wowo0709.py b/Level2/Lessons76502/wowo0709.py index 83a8996..10214c6 100644 --- a/Level2/Lessons76502/wowo0709.py +++ b/Level2/Lessons76502/wowo0709.py @@ -12,10 +12,7 @@ def is_correct(parenthesis): return False def solution(s): - # return sum([is_correct(s[i+1:]+s[:i+1]) for i in range(len(s))]) - ans = 0 - for i in range(len(s)): ans += is_correct(s[i+1:]+s[:i+1]) - return ans + return sum([is_correct(s[i+1:]+s[:i+1]) for i in range(len(s))]) '''