일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 12869번
- 베스트엘범
- 어른 상어
- 19238번
- 1789번
- 경주로 건설
- 미세먼지 안녕!
- 파이썬
- 17144번
- 15686번
- HTML 기초
- 빛의 경로 사이클
- QueryDSL 기초
- 거울 설치
- python
- 수식 최대화
- 백준 알고리즘
- 프로그래머스
- 14499번
- 16234번
- 2020 카카오 인턴십
- 키패드 누르기
- SW ExpertAcademy
- 12865번
- SW Expert Academy
- 1038번
- 보석 쇼핑
- 감소하는 수
- 9095번
- 스타트 택시
Archives
- Today
- Total
보물창고 블로그
2018 KAKAO BLIND RECRUITMENT 3차 방금그곡 본문
728x90
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/17683
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#처리를 용이하기 위해 별도의 딕셔너리를 선언하고 이를 통해 변환하여 처리에 용이함을 더했다. 시간 문자열 처리의 용이함을 위해 datetime 모듈을 사용하였다.
mdic = {'C': 'ㄱ', 'C#': 'ㄴ', 'D': 'ㄷ', 'D#': 'ㄹ', 'E': 'ㅁ', 'E#': 'ㅂ ', 'F': 'ㅅ', 'F#': 'ㅇ', 'G': 'ㅈ', 'G#': 'ㅊ',
'A': 'ㅋ', 'A#': 'ㅌ', 'B': 'ㅍ'}
def change(str1):
length = len(str1)
ns = ''
idx = 0
while idx < length:
if mdic.get(str1[idx:idx + 2]) is None:
ns += mdic[str1[idx]]
idx += 1
else:
ns += mdic[str1[idx:idx + 2]]
idx += 2
return ns
def solution(m, musicinfos):
import datetime
new = change(m)
answer = ''
al = -1
for mu in musicinfos:
mu = mu.split(',')
length = datetime.datetime.strptime(mu[1], '%H:%M') - datetime.datetime.strptime(mu[0], '%H:%M')
length = int(length.total_seconds() // 60)
l = len(mu[3])
n1 = change(mu[3])
n2 = ''
for j in range(length):
if j < len(n1):
n2 += n1[j]
else:
n2 += n1[j % len(n1)]
if new in n2:
if al < length:
al = length
answer = mu[2]
if al == -1:
answer = '(None)'
return answer
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
2020 카카오 인턴십 키패드 누르기 풀이 With Python (0) | 2020.07.06 |
---|---|
2018 KAKAO BLIND RECRUITMENT 3차 압축 (0) | 2020.03.26 |
2018 KAKAO BLINDRECRUITMENT 1차 다트게임 (0) | 2020.03.26 |
2018 KAKAO BLINDRECRUITMENT 1차 비밀지도 (0) | 2020.03.26 |
2018 KAKAO BLINDRECRUITMENT 1차 캐시 (0) | 2020.03.26 |
Comments