공부/📝 프로그래머스(126)
-
소수 찾기 - Python
1. 풀이 코드 def solution(n): answer = 0 sieve = [False] * 2 + [True] * (n - 1) for i in range(2, int(n ** 0.5 + 1)): if sieve[i]: for j in range(2 * i, n + 1, i): sieve[j] = False answer = sum(sieve) return answer 에라토스체네스의 체 위키를 참고해서 만들었습니다. 에라토스테네스의 체 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 에라토스테네스의 체 수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[편집] 2부터 소수 ko.wikipedia.o..
2023.12.10 -
소수 만들기 - Python
1. 풀이 코드 import math def solution(nums): answer = math.comb(len(nums), 3) for i in range(len(nums)): for j in range(i + 1, len(nums), 1): for k in range(j + 1, len(nums), 1): temp = nums[i] + nums[j] + nums[k] for l in range(2, (temp + 1) // 2, 1): if temp % l == 0: answer -= 1 break return answer 처음부터 answer에 모든 경우의 수를 계산하여 넣었습니다. 그 후 소수가 아닌 경우에 대해서 answer에 -1을 더해주는 방식으로 문제를 풀었습니다. 2. 다른 사람 풀이 ..
2023.12.09 -
모의고사 - Python
1. 풀이 코드 def solution(answers): answer = [] one_score = 0 two_score = 0 three_score = 0 one_list = [1, 2, 3, 4, 5] two_list = [2, 1, 2, 3, 2, 4, 2, 5] three_list = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] while len(answers) != 0: temp_num = answers.pop(0) temp_one = one_list.pop(0) temp_two = two_list.pop(0) temp_three = three_list.pop(0) if temp_num == temp_one: one_score += 1 if temp_num == temp_two: tw..
2023.12.08 -
과일 장수 - Python
1. 풀이 코드 def solution(k, m, score): answer = 0 score.sort() while True: if len(score) >= m: answer += score[-m] * m for _ in range(m): score.pop() else: break return answer Queue 형태로 풀었습니다. 2. 다른 사람 풀이 코드 def solution(k, m, score): return sum(sorted(score)[len(score)%m::m])*m 창의력이 좋네요. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프..
2023.12.07 -
폰켓몬 - Python
1. 풀이 코드 def solution(nums): size_list = len(nums) size_set = len(set(nums)) return size_set if size_list // 2 >= size_set else size_list // 2 가독성이 좋아야한다고 생각하여 변수를 지정했습니다. 짧게 쓰기와 가독성을 둘 다 챙길 수 있으면 좋겠습니다. 2. 다른 사람 풀이 코드 def solution(ls): return min(len(ls)/2, len(set(ls))) 확실히 min()을 썼으면 아주 간단하게 할 수 있었네요. 짧게 쓰면서 가독성을 챙긴 좋은 사례로 보입니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lesson..
2023.12.06 -
2016년 - Python
1. 풀이 코드 def solution(a, b): answer = '' month = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] week = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"] days = b + 4 for i in range(a): days += month[i] answer = week[days % 7] return answer 2016년에 한정된 풀이입니다. 문제만 딱 풀려고 만든 코드라서 이쁘게 보이지 않네요. 2. 다른 사람 풀이 코드 # 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다. # 새로운 함수 구성을 적용하려면 [코드..
2023.11.21 -
카드 뭉치 - Python
1. 풀이 코드 def solution(cards1, cards2, goal): answer = '' i, j = 0, 0 for item in goal: if item == cards1[i]: if i != len(cards1) - 1: i += 1 elif item == cards2[j]: if j != len(cards2) - 1: j += 1 else: return "No" return "Yes" Queue로 풀까 했으나 위와 같이 풀었습니다. 2. 다른 사람 풀이 코드 def solution(cards1, cards2, goal): for g in goal: if len(cards1) > 0 and g == cards1[0]: cards1.pop(0) elif len(cards2) >0 and ..
2023.11.17