본문 바로가기

PS/프로그래머스

(64)
[프로그래머스-Level 2] 순위 검색_파이썬 ❌ programmers.co.kr/learn/courses/30/lessons/72412?language=python3
[프로그래머스-Level 2] 메뉴 리뉴얼_파이썬 ❌ programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr from itertools import combinations from collections import Counter def solution(orders, course): result = [] for c in course: temp = [] for order in orders: for combi in combinations(order, c): temp.append(''.joi..
[프로그래머스-Level 2] 삼각 달팽이_파이썬 ❌ programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr def solution(n): triangle = [[0]*i for i in range(1, n+1)] num, row, col = 1, 0, 0 for i in range(n): if i % 3 == 0: for _ in range(n-i): triangle[row][col] = num num += 1 row += 1 row -= 1 col += 1 elif i % 3 == 1:..
[프로그래머스-Level 2] 124 나라의 숫자_파이썬 ❌ programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr def solution(n): answer = '' while n: n, remainder = divmod(n, 3) answer = '412'[remainder] + answer if remainder == 0: n -= 1 return answer 일반적인 3진법과는 달리, 1부터 시작하므로 별도의 처리가 필요하다. 직관적으로 이해하기는 힘든 부분이고, 규칙을 찾아야 풀 수 있는 방법이라고 생각한다. def solution(n): if n
[프로그래머스-Level 2] 멀쩡한 사각형_파이썬 ❌ programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr import math def solution(w,h): return w*h - (w+h-math.gcd(w, h)) 일정한 패턴을 찾아내서 풀어야 하는 문제다. 대각선으로 선을 그으면, (w, h)의 최대공약수 만큼 작은 사각형이 생기는데, 작은 사각형에서 선이 지나가며 영향을 주는 1*1 사각형의 개수는 w+h-1 이다. 따라서 (w/gcd+h/g..
[프로그래머스-Level 2] 스킬트리_파이썬 programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr def check(skill_, skill): stack = [] for s in skill_: if s in skill: stack.append(s) if ''.join(stack) != skill[:len(stack)]: return False return True def solution(skill, skill_trees): count = 0 for skill_ in skill_trees: if check(skill_, skill): count += 1 return count 스킬트리에서 스킬을 하나씩 꺼내 조건(선행)을 충족시켜야 하는 스킬은 stack..
[프로그래머스-Level 1] 실패율_파이썬 programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr from collections import Counter def solution(N, stages): fail = [0] * (N+1) clients = len(stages) counter = Counter(stages) for i in range(1, N+1): count = counter[i] if clients: fail[i] = count / clients client..
[프로그래머스-Level 1] 소수 만들기_파이썬 programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr from itertools import combinations def is_prime(nums_case): candidate = sum(nums_case) for i in range(2, int(candidate**0.5)+1): if candidate % i == 0: return False return True def solution(nums): cou..