본문 바로가기

반응형

알고리즘

(22)
[LeetCode] Palindrome Number Palindrome(회문구조) DNA 분자상의 염기서열이 오른쪽에서 읽어도, 왼쪽에서 읽어도 같은 구조를 가지는 현상. 역방향의 반복 서열이라고도 한다. 이는 암에서 잘 나타나며 이들을 살펴보는 것은 유전체의 불안정성을 알아보는 데 도움이 된다. [네이버 지식백과] 회문구조 [palindrome] (암용어사전) Input값이 회문구조를 가지는지를 확인하는 코드이다. EX) input : 121 output : true input : -121 output : false input : 10 output : false 사실상 몇가지 예외를 제외하면 코드를 reverse시킨다음 같은지 확인하는 것과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23..
[LeetCode] Reverse Integer 32-bit의 부호가 있는(signed)정수가 주어진다. 이정수를 reverse해서 출력해라. EX) input : 123 output : 321 input : -123 output : -321 정수를 10으로 나눈 나머지는 그 정수의 일의 자리를 반환한다. 123%10 = 3 정수를 10으로 나눈 몫은 일의자리를 제외한 나머지를 반환한다. 123 / 10 = 12 위의 값을 적절히 이용하면 reverse를 할 수 있다. 여기서 주의할 점은 Integer값의 범위이다. 종류 타입 크기 범위(최소 ~ 최대) boolean 논리값 1 bit true / false byte 부호 있는 정수 8 bits -128 ~ 127 char 유니코드 문자 16 bits \u0000 ~ \uFFFF short 부호 있는 ..
[LeetCode] Two Sum 같은수를 두번 사용하지 않고 입력받은 int형 배열에서 두개의 합이 target과 같은 배열의 인덱스를 찾는 알고리즘 문제이다. ex) Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 class Solution { public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; for(int i =..
Recursion(순환)-2 문자열의 길이 계산 알고리즘 1 2 3 4 5 6 7 public static int lenghth(String str){ if(str.equals("")) return 0; else return 1+lenghth(str.substring(1)); } Colored by Color Scripter cs 가장 앞에 존재하는 문자 하나를 제거하고 1을 더하는 작업을 반복하여 총 문자열의 길이를 구한다. 문자열의 프린트 하는 알고리즘 1 2 3 4 5 6 7 8 public static void printChars(String str){ if(str.equals("")) return 0; else System.out.print(str.charAt(0)); printChars(str.substring(1)); ..
선형 시간 알고리즘 알고리즘의 시간복잡도란 알고리즘의 속도는 코드에 반복문이 수행되는 횟수로 측정한다. 이때 반복문의 수행 횟수는 입력의 크기에 대한 함수로 표현한다. 선형 시간 알고리즘이란 코드의 수행시간이 입력의 크기에 정비례하는 코드로 대게 우리가 찾을 수 있는 알고리즘 중 가장 좋은 알고리즘인 경우가 많다.(입력 전체를 한번은 확인해야 한다.) 이동평균을 이용하여 선형시간 알고리즘을 이해해 보았다. 이동평균이란 하루에 마시는 믹스커피 개수를 예로 들어 보면 1일 2일 3일 4일 5일 6일 7일 8일 3개 4개 5개 3개 4개 3개 3개 4개 M-이동평균에서 M을 3이라고 한다면 3일에 : (1일+2일+3일)/3 4일에 : (2일+3일+4일)/3 5일에 : (3일+4일+5일)/3 . . . 을 모두 계산하여 나타내는 ..
Recursion(순환)-1 Recursion vs Iteration 모든 순환함수는 반복문으로 변경 가능하다. 모든 반복문은 recursion으로 표현 가능하다. 순환함수는 복잡한 알고리즘을 단순하고 알기쉽게 표현하는 것을 가능하게 한다 함수 호출에 따른 오버헤드가 존재한다.(매개변수 전달, 액티베이션 프레임 생성 등) 자기 자신을 호출하는 함수(메서드)를 Recursion이라고 한다. 1 2 3 4 5 6 7 8 9 10 11 public class Code01{ public static void main(String [] args){ func(); } public static void func(){ System.out.println("Hello...."); func(); } } Colored by Color Scripter c..

반응형