일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- dfs
- 그리디
- 백준
- 수학
- 다익스트라
- 추석맞이 코딩챌린지
- Zip
- heapq
- 동적 계획법
- 프로그래머스
- divmod
- BFS
- 파이썬
- Re
- backjoon
- 이분탐색
- DateTime
- 정규식
- programmers
- Set
- 자바
- KAKAO BLIND RECRUITMENT
- python
- 재귀함수
- 위클리 챌린지
- lambda
- 카카오
- 정렬
- Combinations
- java
Archives
- Today
- Total
상상쓰
[프로그래머스] 매칭 점수 본문
https://programmers.co.kr/learn/courses/30/lessons/42893
정규식을 어느 정도 다룰 줄 알면 크게 어려운 문제는 아니었다.
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