title: "[프로그래머스] 매칭 점수 Python 파이썬 해설 (Level 3) - 이도훈"
cleanUrl: "programmers/42893"
description: "프로그래머스 Level 3 문제 [매칭 점수]의 풀이를 정리합니다."
import re
def get_url(p):
return re.search(r'<meta property="og:url" content="https://(\\S+)"', p).group(1)
def get_external_links(p):
return re.findall(r'<a href="https://(\\S+)">', p)
def count_words(p, word):
cnt = 0
for w in re.findall(r'[a-z]+', p):
if w == word:
cnt += 1
return cnt
def solution(word, pages):
word = word.lower()
scores, urls = {}, []
for page in pages:
page = page.lower()
url = get_url(page)
urls.append(url)
defaultscore = count_words(page, word)
scores[url] = scores.get(url, 0.0) + defaultscore
extlinks = get_external_links(page)
for extlink in extlinks:
scores[extlink] = scores.get(extlink, 0.0) + defaultscore / len(extlinks)
maxscore = max(scores.values())
print(maxscore)
for i, url in enumerate(urls):
if scores[url] == maxscore:
return i
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges