본문 바로가기

알고리즘 풀이79

[알고리즘] 프로그래머스 | 로또의 최고 순위와 최저 순위 로또의 최고 순위와 최저 순위 답: 더보기 def lotto_ranking(number): """등수를 만들어주는 함수""" if number == 1 or number == 0: return 6 elif number == 2: return 5 elif number == 3: return 4 elif number == 4: return 3 elif number == 5: return 2 else: return 1 def solution(lottos, win_nums): answer = [] lottos.sort() win_nums.sort() count = 0 zero_count = 0 for num in lottos: if num == 0: zero_count += 1 if num in win_nums.. 2023. 8. 22.
[알고리즘] 프로그래머스 | 피보나치 수열 피보나치 수열이란? 수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 처음 여섯 항은 각각 1, 1, 2, 3, 5, 8이다. 편의상 0번째 항을 0으로 두기도 한다 프로그래머스 문제에 의하면 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수를 말한다 다음 수를 만들때 이전 수와 자기자신을 더하는 방식이므로 재귀가 가능하다! 문제를 풀기 전에 피보나치 수열을 구하는 7가지 방법을 알아보자! 1) 일반 함수 구현 2) 재귀 함수 구현 3) 제네레이터 (Generator) 방식 4) 메모이제이션 (Memoizatioin) 방식 5) 파이썬 한줄.. 2023. 8. 19.
[알고리즘] 프로그래머스 | 둘만의 암호 둘만의 암호 답: 더보기 from string import ascii_lowercase alpha = list(ascii_lowercase) #아스키코드로 alphabet 배열 만들기 def solution(s, skip, index): answer = '' for sk in skip: alpha.remove(sk) for str_s in s: idx_s = alpha.index(str_s) answer += alpha[(idx_s + index) % len(alpha)] return answer 문제 분석 및 해석 주어지는 문자열을 규칙에 따라 변환하기 1. s에서 index만큼 뒤에 있는 알파벳을 찾아 길이 만큼 answer에 더해주기 2. 26개 넘으면 a로 돌아가서 더 세기 3. skip의 알파벳.. 2023. 8. 18.
[알고리즘] 프로그래머스 | 신규 아이디 추천 제목+링크 답: 더보기 import re def solution(new_id): text = new_id text = text.lower() text = re.sub('[^a-z\d\-\_\.]', '', text) text = re.sub('\.\.+', '.', text) text = re.sub('^\.|\.$', '', text) if text == "": text = "a" text = re.sub('^\.|\.$', '', text[:15]) while len(text) < 3: text += text[-1:] return text 약간의 리팩터링 import re def solution(new_id): text = new_id text = re.sub('[^a-z\d\-\_\.]', '', .. 2023. 8. 17.