카카오 6

[Python] 매칭 점수

1. 문제 2. 풀이 과정 Python 정규 표현식을 이용하여 parsing을 하였다. 여기서 사용된 정규표현식만 살펴보자면 아래와 같다. import re #1. findall text = "hello my id is a1" #문자로 이루어진 문자 1개이상으로 구성된 것 모두 찾기 test = re.findall(r'[a-zA-Z]+',text) print(test) #['hello', 'my', 'id', 'is', 'a'] #2. search text = '' #다음 패턴으로 이루어진 문장 하나 찾기 #[^>]* = >이 아닌 것 0개 이상으로 구성된 것 #[\S]* = 공백이 아닌 것 0개 이상으로 구성된 것 url_str = re.search(r']*content="https://([\S]*)"..

[Python] 길 찾기 게임

1. 문제 2. 풀이 과정 방법 1) 배열로 tree를 구성한 후, 순회 import sys sys.setrecursionlimit(10**6) class Node(object): def __init__(self, i, data_set): self.left_idx = -1 self.idx = i self.right_idx = -1 self.num = data_set[0] self.x = data_set[1] self.y = data_set[2] def pre_order(t, i, result): if i == -1: return result.append(t[i].num) pre_order(t, t[i].left_idx, result)#왼 pre_order(t, t[i].right_idx, result)#..

[Python] 후보키

1. 문제 2. 풀이 과정 from itertools import combinations def solution(relation): row = len(relation) col = len(relation[0]) answer = set() for i in range(1, col+1): for com in combinations(range(col), i): #속성들의 조합 #최소성 검사 minimality = True for a_tup in answer: if set(a_tup) & set(com) == set(a_tup): minimality = False break #최소성을 만족, 유일성 검사 if minimality: temp = set() for k in range(row): temp.add(tupl..

[Python] 실패율

1. 문제 2. 풀이 과정 def solution(N, stages): rate = [0]*(N+2) total = len(stages) #도전자 수 for stage in stages: rate[stage] += 1 result = [] for i, r in enumerate(rate[1:N+1], start = 1): if total == 0: result.append((0, i)) continue temp = rate[i]/total #실패율 total -= rate[i] #스테이지에 도달한 플레이어 수 result.append((temp, i)) return list(map(lambda x:x[1], sorted(result, key = lambda x:x[0], reverse = True)))

[Python] 오픈채팅방

1. 문제 2. 풀이 과정 def solution(record): user = {} result = [] for r in record: order = r.split() if order[0] == "Enter": user[order[1]] = order[2] result.append((order[1], "님이 들어왔습니다.")) elif order[0] == "Leave": result.append((order[1], "님이 나갔습니다.")) elif order[0] == "Change": user[order[1]] = order[2] answer = [] for uid, command in result: temp = user[uid]+command answer.append(temp) return answer