본문 바로가기
  • Code Smell

Language/Algorithm7

[LeetCode] 2. Add Two Numbers Add Two Number 문제 You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself. Input: l1 = [2,4,3], l2 = [5,6,4] Output: [7,0,8] Explanation.. 2021. 8. 26.
[Programmers] 전화번호 목록 (Java) 문제 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예제 ["119.. 2021. 5. 14.
[Codility] CyclicRotation (Java) 문제 An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is moved to the first place). The goal is to rotate array A K times; that is, each eleme.. 2021. 3. 24.
[Programmers] 체육복 (Java) 문제 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성.. 2021. 3. 23.
[Codility] BinaryGap (Java) 문제 A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binar.. 2021. 3. 23.
[LeetCode] Climbing Stairs 문제 (memoization) Climbing Stairs 문제 (memoization) 문제 링크 : https://leetcode.com/problems/climbing-stairs/ 문제의 풀이 방법은 전형적인 피보나치 수열의 합 문제였는데, 이상하게 피보나치 풀이법인 recursive 방법으로 풀면 Time Limit Exceeded 실패가 발생했다. 실행 때 마다 시간이 좀 다르니 혹시 운이 없어서 그런가 했는데, 3번을 돌려도 똑같이 실패했다. 그래서 멤버변수로 Map을 하나 만들고, 이미 지나온 값은 메모리에 들고 있는 방식(memoization)으로 문제를 풀었다. 예를들어 피보나치 수열은 아래랑 같은 공식이 성립하는데 f(n) = f(n-1) + f(n-2) f(5) = f(4) + f(3) 과 같고 f(4) = f(.. 2021. 2. 10.
[ALGORITHM] Binary Search : 이진탐색 [ALGORITHM] Binary Search 업다운 게임과 비슷하다. 찾으려는 값을 한가운데 값((min + max) / 2)과 비교하고 작을 경우 min ~ ((min + max) / 2) 까지 다시 비교 클 경우 ((min + max) / 2) ~ max 까지 다시 비교 첫 탐색에 대한 로직만 구현하고 이후 비교문에서는 재귀함수 방법을 사용한다. 들어오는 배열은 오름차순(sort)으로 정렬 되어있어야 한다. 구현체 public void binarySearch(int[] ar, int start, int end, int search, int cnt) { int index = (start + end) / 2; if(start > end) { System.out.println("not found sear.. 2020. 1. 15.