[내 풀이]
# 굳이 sizes 다시 정의할 필요 없이, min, max만 활용하면 됐다.
def solution(sizes):
sizes = [sorted(x) for x in sizes]
garo = max([x[0] for x in sizes])
sero = max([x[1] for x in sizes])
return garo * sero
[참고 풀이]
def solution(sizes):
return max(max(x) for x in sizes) * max(min(x) for x in sizes)
[내 풀이]
def solution(answers):
score = [0, 0, 0]
p1 = [1, 2, 3, 4, 5]
p2 = [2, 1, 2, 3, 2, 4, 2, 5]
p3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
for i, x in enumerate(answers):
if p1[i % 5] == x:
score[0] += 1
if p2[i % 8] == x:
score[1] += 1
if p3[i % 10] == x:
score[2] += 1
return [i + 1 for i, x in enumerate(score) if x == max(score)]
[참고 풀이]
# len(pattern) 으로 5, 8, 10을 상수가 아닌 동일한 값인 len(pattern)으로 표현할 수 있기 때문에, 이를 활용하여 간결하게 작성 가능
def solution(answers):
p = [[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
s = [0] * len(p)
for q, a in enumerate(answers):
for i, v in enumerate(p):
if a == v[q % len(v)]:
s[i] += 1
return [i + 1 for i, v in enumerate(s) if v == max(s)]
[참고 풀이]
from itertools import permutations
def solution(n):
a = set()
for i in range(len(n)):
a |= set(map(int, map("".join, permutations(list(n), i + 1))))
a -= set(range(0, 2))
for i in range(2, int(max(a) ** 0.5) + 1):
a -= set(range(i * 2, max(a) + 1, i))
return len(a)
[내 풀이]
maxCount = 0
def dfs(k, dungeons, count):
global maxCount
maxCount = max(maxCount, count)
try:
for i, dungeon in enumerate(dungeons):
pilyo, somo = dungeon
dungeons.pop(i)
if k >= pilyo:
dfs(k - somo, dungeons, count + 1)
dungeons.insert(i, dungeon)
except:
print(k, dungeons, count)
def solution(k, dungeons):
global maxCount
maxCount = 0
dungeons = sorted(dungeons)
dfs(k, dungeons, 0)
return maxCount
[참고 풀이]
maxCount = 0
N = 0
visited = []
def dfs(k, cnt, dungeons):
global maxCount
maxCount = max(maxCount, count)
for j in range(N):
if k >= dungeons[j][0] and not visited[j]:
visited[j] = 1
dfs(k - dungeons[j][1], cnt + 1, dungeons)
visited[j] = 0
def solution(k, dungeons):
global N, visited
N = len(dungeons)
visited = [0] * N
dfs(k, 0, dungeons)
return maxCount
visited[] 를 쓰는 쪽이 빠르겠다 싶었는데, 별로 차이가 나진 않았다. dungeons의 최대 길이가 8이라서 그런 것 같다.
'알고리즘 문제풀이 > 프로그래머스 고득점 Kit' 카테고리의 다른 글
[프로그래머스 고득점 Kit - 해시] 2. 완주하지 못한 선수 (0) | 2023.09.29 |
---|---|
[프로그래머스 고득점 Kit - 해시] 1. 폰켓몬 (0) | 2023.09.29 |
[프로그래머스] 고득점 Kit - 힙 (0) | 2023.06.15 |
[프로그래머스] 고득점 Kit - 스택/큐 (1) | 2023.06.13 |
[프로그래머스] 고득점 Kit - 정렬 (1) | 2023.06.06 |
댓글