본문 바로가기

반응형

Programming/알고리즘 공부

(15)
[Data Structure] 재귀함수를 활용한 피보나치 수열 구현 2024년 4월 7일(일) 오늘은 재귀함수를 활용한 피보나치 수열 구현에 대한 학습을 진행했다. 재귀함수 개념이 참 머릿속에 그려지는 듯 하면서도 이내 뭉그러진다. 재귀함수를 공부하면서 Visualization 도구의 도움을 많이 받았다. 나의 코드가 메모리에 어떻게 올라가고 동작하는지 시각화하여 보여주기 때문에 이해가 한결 수월했다. https://pythontutor.com/ Online Python Tutor - visualize, debug, get AI help for Python, Java, C, C++, and JavaScript Online Compiler, Visual Debugger, and AI Tutor for Python, Java, C, C++, and JavaScript Pyt..
[Programmers] 위클리 챌린지 | 1주차_부족한 금액 계산하기 문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 c..
[LeetCode] Add Binary | 난이도: Easy 문제 주어진 2진수 문자열 a, b의 합을 2진수 문자열로 리턴. 예시 Example 1: Input: a = "11", b = "1" Output: "100" Example 2: Input: a = "1010", b = "1011" Output: "10101" 답안 class Solution { public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder(); int i = a.length() - 1; int j = b.length() -1; int sum = 0; while (i >= 0 || j >= 0) { if (j >= 0) sum += b.charAt(j--) - '0'; if (i >= 0) sum +=..
[LeetCode] Plus One | 난이도: Easy 문제 주어진 정수 배열 digits에 있는 값을 하나의 숫자로 보고 1을 더한 결과를 배열로 리턴한다. 배열에 담기는 숫자는 0부터 9까지이다. 만약 배열에 값 9만 담겨 있다고 가정해보자.( digits[9] ) 여기에 1을 더하면 10이 된다. 따라서 결과는 digits[1, 0]이 된다. 이렇게 자릿수가 바뀔 수 있다는 점에 유의해야 한다. 예시 Example 1: Input: digits = [1,2,3] Output: [1,2,4] Explanation: The array represents the integer 123. Incrementing by one gives 123 + 1 = 124. Thus, the result should be [1,2,4]. Example 2: Input: dig..
[CodeUp] 정수 1개 입력받아 나누어 출력하기 문제 다섯 자리로 이루어진 하나의 정수를 입력받는다. 입력받은 정수를 자릿수 별로 분리한 후 아래와 한 줄에 하나씩 [ ] 속에 넣어 출력한다. (단, 10,000
[LeetCode] Length of Last Word | 난이도: Easy 문제 Given a string s consisting of some words separated by some number of spaces, return the length of the last word in the string. A word is a maximal substring consisting of non-space characters only. 예시 Example 1: Input: s = "Hello World" Output: 5 Explanation: The words are "Hello" and "World", both of length 5. Example 2: Input: s = " fly me to the moon " Output: 4 Explanation: The longest w..
[LeetCode] Maximum Subarray | 난이도: Easy 문제 Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. A subarray is a contiguous part of an array. 주어진 배열의 부분 배열(subarray)의 합 중 최대값을 구하시오. 부분 매열은 연속적인(contiguous) 배열이어야 한다. [1,2,3,4] 배열을 예시로 들자면, [1,2]는 부분배열로 가능하지만, [1,3]또는 [1,4]와 같이 연속적이지 않고 서로 떨어져 있는 값들은 조건에 어긋난다. 예시 Example 1: Input: nums = [-2,1,-3,4,-1,2,1..
[LeetCode] Search Insert Position | 난이도: Easy 문제 Given a sorted array of distinct integers and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order. You must write an algorithm with O(log n) runtime complexity. 배열 nums에 target 값과 일치하는 값이 있다면 해당 값의 인덱스를 리턴. 만약 일치하는 값이 없다면 target 값이 있어야 할 위치의 인덱스를 리턴. O(log n) 시간복잡도를 고려한 알고리즘을 작성해야 한다. 예시 Input: nums = [1,3,5,6], targ..

반응형