combinations 3

[set, map, sum] 프로그래머스 lv1. 두 수의 합 (map이랑 sum 같이 쓰기!)

문제 리스트에서 두 개 뽑아서 더한 값을 오름차순으로 정렬해라. 문제 바로가기 내 풀이 from itertools import combinations def solution(n): comb = set(map(sum,(combinations(n, 2)))) return sorted(list(comb)) 결과 비슷한데, map없이 쓴 다른 사람 풀이 (list comprehension) : 더 느림, 같은 결과를 가져온다는 점만 배우면 된다. from itertools import combinations def solution(numbers): return sorted(set(sum(i) for i in list(combinations(numbers, 2)))) 결과 반환값의 형태는 list여야 해서 lis..

[combinations, Counter, 빈도] 프로그래머스 lv2. 메뉴리뉴얼

문제 from itertools import combinations def solution(orders, course): comb_dic = {long: {} for long in course} selected = set() for long in course: best_num = 2 for guest in orders: comb = list(map(sorted, combinations(guest, long))) comb = ["".join(arr) for arr in comb if len(arr) > 0] for e in comb: if not e: continue key = "".join(sorted(e)) if key in comb_dic[long].keys(): comb_dic[long][key] ..

[완전탐색] 프로그래머스 lv2. 소수찾기 (feat. 순열 조합, extend, permutations)

문제 종이 조각의 숫자들을 문자열 numbers로 받는다고 할 때, 각 문자열로 만들 수 있는 숫자 중 소수가 몇개인지 반환하라. 내 코드 플로우 문자열로 만들 수 있는 모든 길이의 조합을 리스트로 만든다. '01' 이나 '1'은 같은 숫자를 의미하기 때문에, 중복되는 값들은 조합 리스트에 넣지 않도록한다. 조합 숫자 리스트 전체를 돌며, 나누어 떨어지는 약수를 가지고 있는지 확인한다. 가지고 있지 않다면, cnt 값을 +1 해준다. 전체 코드 from itertools import permutations def solution(numbers): cnt = 0 tot = [] for i in range(1, len(numbers)+1): arr = list(int(i) for i in list(map('..

⚡️algorithm 2022.05.25