40. 실패율
2024. 7. 16. 15:24
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 15분 def solution(N, stages): fail = [[i+1,0] for i in range(N)] rate = [[0,0] for i in range(N+1)] for people in stages: for i in range(0, people): rate[i][1] += 1 rate[people-1][0] += 1 del rate[len(rate)-1] for i in range(len(rate)): if rate[i][1] == 0: continue else: fail[i][1] = rate[i][0] / rate[i][1..
39. 소수 찾기 ★ (소수 판별 알고리즘)
2024. 7. 16. 14:12
프로그래머스/Lv. 1
유형 : 구현 (소수 판별)풀이 시간 : 15분 -> 인터넷 서치 소수 판별을 효율적으로 하려면, 에라스토테네스의 체 원리를 이용해야 한다. 1. 기본 : set, 에라스토테네스의 체 이용하기 def solution(n): answer = set([i for i in range(2, n+1)]) for i in range(2, int(n ** 0.5) + 1): if i in answer: mul = set([x for x in range(i*2, n+1, i)]) answer -= mul return len(list(answer)) - 체크 (순회) : n ** 0.5 + 1 / math.sqrt(n) +1 까지만 하면됨,- ans..
38. 소수 만들기 (소수 판별 알고리즘)
2024. 7. 16. 02:09
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 20분 def solution(nums): answer = -1 from itertools import combinations sumnum = [] for number in combinations(nums, 3): cnt = sum(number) sumnum.append(cnt) sumnum.sort(reverse = True) answer = 0 for i in range(len(sumnum)): if check(sumnum[i]) == False: answer += 1 return answerdef check(num): import math for i in rang..
37. 과일 장수
2024. 7. 14. 19:30
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 20분 def solution(k, m, score): answer = [] score.sort(reverse = True) cnt = 0 curr = [] for i in range(0, len(score)): curr.append(score[i]) cnt += 1 if cnt == m: answer.append(curr) cnt = 0 curr = [] res = 0 for box in answer: res += min(box) return res * m 비교적 간단한 문제였다.왜헤맸지
36. 모의고사
2024. 7. 14. 17:22
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 15분 def solution(answers): one = [1, 2, 3, 4, 5] two = [2, 1, 2, 3, 2, 4, 2, 5] three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] x, y, z = 0, 0, 0 for i in range(len(answers)): if one[0] == answers[i]: x += 1 if two[0] == answers[i]: y += 1 if three[0] == answers[i]: z += 1 one.append(one.pop(0)) two.append(..
35. 2016년
2024. 7. 14. 03:53
프로그래머스/Lv. 1
푸항항유형 : (짜증나는) 구현풀이 시간 : 10분 def solution(a, b): answer = '' day = ['THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED'] monthsday = [30 for i in range(12)] for i in range(len(monthsday)): if i 6: if i % 2 == 1: monthsday[i] += 1 days = b for j in range(a-1): days += monthsday[j] return day[days%7] 마지막에 j를 i로 잘못써서 헤맸다. 제발 실수..실수해도 빨리 찾자
34. 폰켓몬 (set에 대하여)
2024. 7. 14. 03:37
프로그래머스/Lv. 1
유형 : 구현풀이 시간 : 5분 1. 나의 풀이 def solution(nums): answer = 0 sort = [] for n in nums: if n not in sort: sort.append(n) goal = len(nums) // 2 exist = len(sort) if goal list를 만들어 중복 없는 폰켓몬 넘버 배열을 만들고, 그것의 길이와 goal 중 min을 return하도록 했다. 코드 최적화를 거치면 아래와 같겠다. def solution(nums): answer = 0 sort = [] for n in nums: if n not in sort: sort.app..
33. 카드 뭉치
2024. 7. 14. 03:25
프로그래머스/Lv. 1
유형 : 스택? 구현풀이 시간 : 10분 def solution(cards1, cards2, goal): while True: if cards1 and cards1[0] == goal[0]: del cards1[0] del goal[0] if not goal: return "Yes" elif cards2 and cards2[0] == goal[0]: del cards2[0] del goal[0] if not goal: return "Yes" else: return "No" ..