본문 바로가기
반응형

컴퓨터/알고리즘25

[백준] 2747번 피보나치 수 문제풀이(python) 문제링크: https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net python 풀이 memo = [0] * 50 def 피(n): if n == 0: return 0 elif n == 1: return 1 elif memo[n]: return memo[n] memo[n] = 피(n - 1) + 피(n - 2) return memo[n] a = int(input()) print(피(a)) 2747번 문제는 일반적인 재귀함.. 2022. 8. 1.
[백준] 10872번 팩토리얼 문제 풀이 (python) 문제 링크: https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net python 풀이 def 재귀팩토리얼(n): if n 2022. 7. 31.
[프로그래머스] Lv1 시저 암호_python 문제 풀이 출처 https://programmers.co.kr/learn/courses/30/lessons/12926 문제 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a" s는 알파벳 소문자, 대문자, 공백이고, 공백은 아무리 밀어도 공백 입출력예시 "AB" "z"' "a B z" 문제풀이1 def solution(s, n): sentense = s answer = "" 대문자 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 소문자 = "abcdefghijklmnopqrstuvwxyz" for i in range(len(sentense)): if sentense[i] in.. 2022. 7. 9.
[프로그래머스] Lv1 가운데 글자 가져오기_python 문제 풀이 출처 https://programmers.co.kr/learn/courses/30/lessons/12903 문제 단어 s의 가운데 글자를 반환하는 함수 단어의 길이가 짝수라면 가운데 두글자를 반환 입출력예시 "abcde" "qwer" 문제풀이1 def solution(s): 길이 = len(s) if 길이 %2 ==0: return s[길이//2-1]+s[길이//2] elif 길이 %2 ==1: return s[길이//2] 2022. 7. 8.
[프로그래머스] Lv1 이상한 문자 만들기_python 문제 풀이 출처 https://programmers.co.kr/learn/courses/30/lessons/12930 문제 각 단어는 하나 이상의 공백문자로 구분 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력예시 "try hello world" 문제풀이1 def solution(s): arr = [] word_index = 0 for i in range(len(s)): if s[i] == ' ': word_index = 0 arr.append(s[i]) elif word_index % 2 == 0:.. 2022. 7. 7.
[프로그래머스] Lv1 콜라츠 추측_python 문제 풀이 출처 https://programmers.co.kr/learn/courses/30/lessons/12943 문제 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성하라 단 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1 입출력예시 문제풀이1 def solution(num): count = 0 while n.. 2022. 7. 6.
[프로그래머스] Lv1 자연수 뒤집어 배열로 만들기_python 문제 풀이 출처 https://programmers.co.kr/learn/courses/30/lessons/12932 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴 입출력예시 문제풀이1 def solution(n): num_list = list(map(int, str(n))) return num_list.reverse() 들어온 자연수를 list 에 넣어주고(string 형으로), 뒤집어줬다. 2022. 7. 5.
[프로그래머스] Lv1 같은 숫자 시러_python 문제 풀이 출처 https://programmers.co.kr/learn/courses/30/lessons/12906 문제 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있다. 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거 단 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지 입출력예시 문제풀이1 def solution(arr): push_arr = [] for i in range(len(arr) - 1): if arr[i] != arr[i + 1]: push_arr.append(arr[i]) push_arr.append(arr[-1]) return push_arr 그리디 풀듯이 푼 문제 배열 앞 뒤로 비교해서 다른 수가 나오면 무조건 push -> 맨 마지막 수.. 2022. 7. 4.
반응형