Set 4

[합집합, 교집합, 병합 정렬] 프로그래머스 lv2. 뉴스클러스터링

문제 : 프로그래머스 lv2. 뉴스클러스터링 (바로가기)[https://school.programmers.co.kr/learn/courses/30/lessons/17677] 문제 요구사항 // 1. str1과 str2를 정규식을 사용하여 영문만 남기고 숫자, 특수문자 등은 모두 " " 공백처리한다. // 2. 문자열 배열을 구한다. // 영문이 연속으로 나와야 문자열이 유효하다. 따라서 두번째 문자에 " " 공백이 있으면 제외한다. // 3. 문자열 배열의 합집합을 구한다. // 4. 문자열 배열의 교집합을 구한다. // 5. 답을 구한다.내 풀이 def solution(str1, str2): def getJachard(a,b): common=[] for each in a: if each in b: b...

[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] ..

[Dictionary 탐색] 프로그래머스 lv2. 신고결과받기 (feat. enumerate, set, dictionary)

[ 문제 바로가기 ] 수도코드 내 답안 def solution(users, report, k): report = set(report) report = [text.split() for text in report] history = {x[0]:[] for x in report} reported_cnt = {key:0 for key in users} reported_who = {key:[] for key in users} # block for content in report: whom = content[1] reported_cnt[whom] += 1 reported_who[whom].append(content[0]) blocked = [i for i, cnt in reported_cnt.items() if c..