-
반응형
외계어 사전 - https://school.programmers.co.kr/tryouts/85920/challenges
def solution(spell, dic): answer = 0 for item in dic: check = True for c in spell: if c not in item: check = False break if check: return 1 return 2
중복된 문자 제거 - https://school.programmers.co.kr/tryouts/85921/challenges
def solution(my_string): ans = "" table = set() for c in my_string: if c not in table: ans += c table.add(c) return ans
최빈값 구하기 - https://school.programmers.co.kr/tryouts/85922/challenges
set 활용해서 최빈값 기억
def solution(array): table = dict() max_n = set() max_cnt = 1 for n in array: if n in table: table[n] += 1 else: table[n] = 1 if table[n] > max_cnt: max_cnt = table[n] max_n = {n} if table[n] == max_cnt: max_n.add(n) if len(max_n) > 1: return -1 else: return list(max_n)[0]
포켓몬 - https://school.programmers.co.kr/tryouts/85923/challenges
def solution(nums): answer = 0 n = len(nums) cnt = set(nums) if len(cnt) > n//2: return n//2 else: return len(cnt)
둘만의 암호 - https://school.programmers.co.kr/tryouts/85924/challenges
skip 최대 길이 10이므로 최소 패턴 길이 16, index 최대 길이 20이므로 패턴 길이 3배까지 해야됨
def solution(s, skip, index): pattern = "abcdefghijklmnopqrstuvwxyz" for c in skip: pattern = pattern.replace(c, "") pattern *= 3 ans = "" for c in s: next_pos_index = (pattern.find(c)) + index ans += pattern[next_pos_index] return ans
신고 결과 받기 - https://school.programmers.co.kr/tryouts/85925/challenges
중복 신고 허용 안되므로, set으로 기록한 뒤 신고 인원이 k명 이상이면 1씩 더해주도록 함
def solution(id_list, report, k): id_reporting = {v:set() for v in id_list} for record in report: id1, id2 = record.split(" ") id_reporting[id2].add(id1) result = [0 for _ in range(len(id_list))] mapping = {k:idx for idx, k in enumerate(id_list)} for key, value in id_reporting.items(): if len(value) >= k: for id_for_mail in value: result[mapping[id_for_mail]] += 1 return result
반응형