본문 바로가기

728x90

알고리즘 공부

(4)
재귀를 사용한 팩토리얼, 피보나치 구현 팩토리얼이란 n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말이다 def factorial(n): if n == 1: return n return n * factorial(n - 1) print(factorial(100)) 재귀에서 중헌것은 반복되는 루프를 빠져나올 수 있는 조건식! 피보나치 https://ko.wikipedia.org/wiki/피보나치_수 n값은 n의 앞선 두 항에 피보나치 수열이 적용된 값의 합이다. 재귀를 써서 해결해봤다. def fibonacci(n): if n
k번째로 작은 수 https://programmers.co.kr/learn/courses/33/lessons/1864?language=python3 COS Pro 2급 Python 모의고사 - k번째로 작은 수 [[5,12,4,31],[24,13,11,2],[43,44,19,26],[33,65,20,21]] 4 11 programmers.co.kr 문제 자연수가 담겨있는 n x 4 크기의 2차원 배열에서 k번째로 작은 수를 찾으려 합니다. 이때, n은 배열의 세로길이, 4는 배열의 가로길이입니다. 예를 들어 다음은 자연수가 담겨있는 4 x 4 크기의 2차원 배열입니다. 위 2차원 배열에서 가장 작은 수는 2입니다. 두 번째로 작은 수는 4, 세 번째로 작은 수는 5이며, 네 번째로 작은 수는 11입니다. 2차원 배열 ar..
백준 2530: 인공지능 시계 https://www.acmicpc.net/problem/2530 2530번: 인공지능 시계 첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0 www.acmicpc.net 처음 문제를 봤을때 입력받는 현재시간을 초단위로 변환하고 요리시간을 더하여 지지고 볶고 난리를 피우는게 정석이라고 생각했다. 그러자 갈수록 늘어나는 코드... 길어지는게 나쁜건 아니지만, 알고리즘 슨배님의 조언을 얻고서 심봉사 눈이 뜨이는 듯한 충격을 받았다. 이리도 쉬운 방법이 또 있었다니... current = input().split(' ') needTime = in..
두 정수형 배열을 10진수 값으로 더하기 def arrayToIntValue(arr): mutableScale = 1 result = 0 for value in reversed(arr): result += value * mutableScale mutableScale *= 10 return result def addToArray(arr1, arr2): return arrayToIntValue(arr1) + arrayToIntValue(arr2) print(addToArray([1,2,5,5] , [3,4,5])) # 출력결과 1600 처음에는 배열의 숫자를 하나씩 빼서 문자열로 붙였다가 StandardLibrary에서 제공해줄지도 모르는 캐스팅을 사용해서 숫자로 만들어야 하나 싶었는데, 조금 더 생각해보니 언젠가 웹서칭하다가 봤던 문제였던걸 떠올..

728x90