[Programmers] Level 2. 메뉴 리뉴얼
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 사람들이 가장 많이 주문한(2명 이상) 단품메뉴(단품 2개 이상)를 조합해 새로운 코스메뉴를 반환한다. 코스를 구성하는 단품 메뉴의 수가 가장 많은 메뉴만을 코스로 구성한다. ("AB" 4개, "AC" 2개일 경우 "AB"만 해당) 💻Solution 1. key를 통한 정렬 풀이 from itertools import combinations from collections import Counter def solution(orders, course): answer =..
[Programmers] Level 3. 불량 사용자
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 일부 문자가 가려진 banned_id와 일치하는 user_id 목록을 만들고, 목록의 개수를 반환한다. 목록의 순서는 관계없으며, 목록의 아이디가 일치한다면 하나의 목록으로 간주한다. 💻Solution 1. id별 일치 여부를 확인하는 풀이 from itertools import permutations def IdCheck(uid, bid): if len(uid) != len(bid): return False correct_cnt = 0 for i in range(..
[Programmers] Level 2. 모음사전
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking ["A", "E", "I", "O", "U"]만을 사용한 5글자 이하의 단어들이 수록된 사전에서, 주어진 단어의 위치를 반환한다. 사전은 "A", "AA", "AAA", "AAAA", "AAAAA"... 순서로 이루어져 있다. 💻Solution from itertools import product def solution(word): alpha = ['A','E','I','O','U'] dictionary = [] for i in range(1,6): dictiona..
순열과 조합
·
Python 활용하기
1. 중복을 허용하지 않는 경우 1 - 1. 순열 (permutations) $${}_n{\rm P}_r = \frac{n!}{(n-r)!}$$ - p개 중에서 중복을 허용하지 않고 r개를 뽑아 나열하는 경우의 수 - 나열하기 때문에 순서가 다르면 다른 경우로 취급한다. from itertools import permutations a = [1,2,3,4,5] b = list(permutations(a, 2)) # a에서 2개를 뽑아 나열하는 경우 print(b) [(1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 4), (3, 5), (4, 1), (4, 2), (4, 3), (4, 5), (5, 1),..