티스토리 뷰
728x90
https://programmers.co.kr/learn/courses/30/lessons/84512
- 해설 :
모음으로만 이루어진 5글자 이하의 문자열이 주어질 때, 사전순으로 "A"부터 "UUUUU" 까지의 모든 단어들 중 몇 번째 순서에 위치하는지 찾는 문제이다.
- 풀이 :
사전순으로 몇 번째 위치에 있는지 알기 위해 "A" 부터 "UUUUU"까지 담겨있는 list를 만들었다. 정말 무식한 방법을 사용한 것 같다. 만든 방법은 itertools의 product를 사용해서 빈 문자열과 "A", "E","I","O","U" 모음들이 들어있는 배열에서 repeat = 5를 옵션으로 넣어 5개짜리 문자열을 만들었다. 이 때, 빈 문자열을 넣었으므로 5자릿수가 아닌 문자열도 포함된다. 중복을 제거 해주기 위해 set으로 변환하고 이 집합에서 내가 찾으려는 문자열이 몇 번째 인덱스에 위치하는지 리턴하게 하였다.
1 2 3 4 5 6 7 8 9 10 11 | from itertools import product from itertools import combinations_with_replacement def solution(word): answer = 0 for idx,key in enumerate(set(sorted(list([''.join(i) for i in list(product(['','A','E','I','O','U'], repeat=5))])))): if key == word: answer = idx return answer | cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - 프로그래머스 : 방문 길이 (0) | 2022.01.21 |
---|---|
(Python) - 프로그래머스(2018 KAKAO BLIND RECRUITMENT) : [1차] 비밀지도 (0) | 2022.01.21 |
(Python) - 프로그래머스 : 두 개 뽑아서 더하기 (0) | 2022.01.20 |
(Python) - 프로그래머스 : 괄호 회전하기 (0) | 2022.01.20 |
(Python) - 프로그래머스(2020 카카오 인턴십) : 보석 쇼핑 (0) | 2022.01.20 |
댓글
© 2022 WonSeok, All rights reserved