상상쓰

[프로그래머스] 매칭 점수 본문

Coding Test

[프로그래머스] 매칭 점수

상상쓰 2021. 6. 22. 11:24

https://programmers.co.kr/learn/courses/30/lessons/42893

 

코딩테스트 연습 - 매칭 점수

매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀

programmers.co.kr

 

정규식을 어느 정도 다룰 줄 알면 크게 어려운 문제는 아니었다.

 

1. word 와 page 를 소문자로 통일시킨 뒤 page 에서 조건에 맞는 word 를 찾는다.

2. 웹페이지의 url 과 외부링크를 찾는다.

3. dic 을 이용하여 각 url 의 점수를 계산한 값을 넣어준다. 외부링크에는 있으나 page 의 url 이 아닌 경우와 index 를 구분하기 위해 array 를 생성했다.

4. array 를 통해 가장 큰 점수를 가진 웹페이지의 index 를 반환한다. 점수가 같으면 낮은 index 를 반환한다.

 

import re
from collections import defaultdict

def solution(word, pages):
    answer = 0
    dic = defaultdict(int)
    array = []
    
    for i in range(len(pages)):
        a = re.findall('[a-z]+', pages[i].lower()).count(word.lower())
        b = re.search(r'<meta property="og:url" content="https://(\S*)"/>', pages[i]).group(1)
        c = re.findall(r'<a href=\"https://([\S]*)"\>', pages[i])
        array.append(b)
        dic[b] += a
        
        for j in c: dic[j] += a / len(c)
    
    M = 0
    
    for i in range(len(array)):
        if M < dic[array[i]]:
            answer = i
            M = dic[array[i]]
               
    return answer

print(solution('blind', ['<html lang=\"ko\" xml:lang=\"ko\" xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta property=\"og:url\" content=\"https://a.com\"/>\n</head>  \n<body>\nBlind Lorem Blind ipsum dolor Blind test sit amet, consectetur adipiscing elit. \n<a href=\"https://b.com\"> Link to b </a>\n</body>\n</html>', '<html lang=\"ko\" xml:lang=\"ko\" xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta property=\"og:url\" content=\"https://b.com\"/>\n</head>  \n<body>\nSuspendisse potenti. Vivamus venenatis tellus non turpis bibendum, \n<a href=\"https://a.com\"> Link to a </a>\nblind sed congue urna varius. Suspendisse feugiat nisl ligula, quis malesuada felis hendrerit ut.\n<a href=\"https://c.com\"> Link to c </a>\n</body>\n</html>', '<html lang=\"ko\" xml:lang=\"ko\" xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta property=\"og:url\" content=\"https://c.com\"/>\n</head>  \n<body>\nUt condimentum urna at felis sodales rutrum. Sed dapibus cursus diam, non interdum nulla tempor nec. Phasellus rutrum enim at orci consectetu blind\n<a href=\"https://a.com\"> Link to a </a>\n</body>\n</html>'])) # 0

'Coding Test' 카테고리의 다른 글

[프로그래머스] 짝지어 제거하기  (0) 2021.06.23
[프로그래머스] 다단계 칫솔 판매  (0) 2021.06.23
[백준] 수리공 항승  (0) 2021.06.22
[백준] 보석 도둑  (0) 2021.06.21
[프로그래머스] 스타 수열  (0) 2021.06.18
Comments