본문 바로가기

전체 글82

[Level 2] [python] 귤 고르기 문제 파이썬 풀이 from collections import Counter def solution(k, tangerine): cnt = Counter(tangerine) answer = 0 box = 0 for i in cnt.most_common() : box += i[1] answer += 1 if box >= k : break return answer Counter 클래스를 사용하여 문제를 해결하였다. 우선 Counter클래스를 통해 크기 별로 몇 개의 귤을 가지고 있는지 계산을 한다. Counter클래스의 most_common() 메서드를 통해 귤 개수를 내림차순으로 정리한 리스트를 반복문으로 돌며 가장 많은 개수를 가진 귤부터 box에 넣어준다. (box변수는 현재 box안에 들어 있는 귤의 개.. 2022. 11. 24.
[Level 1][python] 명예의 전당 (1) 문제 파이썬 풀이 def solution(k, score): answer = [] scoreList = [] for i in score : scoreList.append(i) scoreList.sort() if len(scoreList) < k : answer.append(scoreList[0]) else : answer.append(scoreList[-k]) return answer score변수에서 하나씩 꺼내어 리스트에 차례로 담고 오름차순 정렬을 진행한다. 그리고 초기 k일이 지나기 전에는 모든 사람들이 명예의 전당에 오르게 되므로 가장 점수가 작은 0번째 인덱스 값을 answer리스트에 추가한다. k일 이후부터는 뒤에서 k번째 점수가 명예의 전당 마지막 점수이므로 -k번째 인덱스 값을 추가해준다. 2022. 11. 24.
[Level 2] [python] 롤케이크 자르기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 파이썬 풀이 첫 번째 풀이 (시간 초과) 단순히 for문을 통해 하나씩 차근차근 슬라이싱하며 나눠진 서브 리스트들을 집합 자료형으로 바꿔 중복을 없앤 뒤 길이를 비교하는 방법을 사용하였다. 그러나 대부분의 테스트 케이스에서 시간초과가 발생하였다. def solution(topping): answer = 0 for i in range(1, len(topping)) : a = len(set(t.. 2022. 11. 19.
[Level 1] [python] 기사단원의 무기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/136798 파이썬 풀이 def getMyDivisorLen(n): divisorsList = [] for i in range(1, int(n**(1/2)) + 1): if (n % i == 0): divisorsList.append(i) if ( (i**2) != n) : divisorsList.append(n // i) return len(divisorsList) def solution(number, limit, power): answer = 0 for i in range(1, number+1) : divisorLen = getMyDivisorLen(i) if divisorLen > limit.. 2022. 11. 17.