Algorithm
-
Problems
[백준] 274333 팩토리얼2
팩토리얼 문제는 재귀함수에 대한 기본적인 개념을 보여주는 가장 기초적인 문제 입니다. 반복문을 통해서도 구현할 수 있지만, 재귀함수를 이해하고, 이에 익숙해지기 위해 반복문과 재귀함수 모두를 이용하여 구현해보면 좋을 것 같습니다. 풀이 # 반복문을 이용한 풀이 def factorial_loop(input_num): result = 1 for i in range(1, input_num + 1): result *= i return result # 재귀함수를 이용한 풀이 def factorial_recur(input_num): if input_num == 0: return 1 else: return input_num * factorial_recur(input_num - 1)
-
Problems
[이것이 코테] 곱하기 혹은 더하기
문제는 주어진 문자열에 대해서 순서대로 더하기나 곱하기 연산을 시행하여 나올 수 있는 최댓값을 구하는 것입니다. 연산의 과정은 실제 곱하기와 더하기의 수학적 연산 순서와 상관없이 주어진 순서대로 진행되기 때문에 단순하게 각 스텝의 연산에서 더하기가 더 큰 결과값을 만드는지, 곱하기가 더 큰 결과값을 만드는지만 확인하면 됩니다. 입력되는 값은 0을 포함한 양의 정수이므로, 더하기와 곱하기의 특성을 고려했을 때 1. 0과 1에 대해선 더하기 연산을 진행하는 것이 더 큰 값을 만든다. ex) n * 0 = 0 n + 0 = n n * 1 = n n + 1 = n + 1 2. 0과 1을 제외한 숫자에 대해선 곱하기 연산을 진행하는 것이 더 큰 값을 만든다. 위와 같은 사실을 알 수 있으므로, 해당 부분만 코드로..
-
Problems
[Programmers] 다리를 지나는 트럭
문제 더보기 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5,6] 4 [7] [4,5] ..
-
Problems
[Programmers] 기능 개발
문제 더보기 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100% 일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발 속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds 배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이..