LeetCode
-
[LeetCode]Reverse IntegerAlgo 2019. 6. 22. 15:26
문제 문자 스트링을 정수로 변환하는 atoi(), itoa()와 관련된 문제이다. Solution 나의 코드는 아래와 같다. Result atoi()란 문자 스트링을 정수 값으로 변환하는 것을 의미한다. c에서는 stl로 stdlib.h 파일에 선언되어있다고 한다. 그래서 해당 문제의 discussion을 가보면 뭐 여타 다른 이유로 있겠지만 압도적으로 c로 푼 코드가 퍼포먼스가 좋다. Kotlin으로 해당 문제를 풀어본 필자는 String.reversed()가 가장 먼저 떠올랐다. 그렇지만 NumberFormatException이 발생해서 애좀 썼다... 여차저차 해서 풀었는데 발생했던 오류 중 하나는 ( - )이다. x를 바로 String.reverse()했더니 -까지 뒤에 붙어 버려서 초반에 x의 ..
-
[LeetCode] Climbing StairsAlgo 2019. 5. 6. 23:00
문제 알고리즘 유형중 DP(Dynamic Programming)에 관한 문제이다. DP 관련한 문제를 접근하기 위해서는 메모제이션에 대한 이해가 필요하다. TOP-DOWN 위에서 아래로 접근하는 방식 재귀를 많이 이용한다. Bottom-Up 밑에서 위로 접근하는 방식 for문같은 반복문을 많이 이용. 메모제이션에 관한 이해나 부연 설명들은 아래와 같은 블로그를 참고하면 더욱더 이해하기 쉬울 것이다. * 김로그 * all about coding 피보나치수열처럼 점화식을 이용하면 구할 수 있는 문제였다. class Solution { fun climbStairs(n: Int): Int { val array = IntArray(n+1).let { for (i in 1..n) { when (i) { 1 -> i..
-
[LeetCode] Two sumAlgo 2019. 3. 10. 17:47
Question난이도 : 쉬움 문제 : 주어진 정수 배열을 이용하여 특정 target을 더해서 만들 수 있는 2개의 인덱스를 반환해라. 정확히 한개의 해결방법이 있고 동일한 element를 사용할수 없다. My solution Another solution Description시간 복잡도 O(N^2) 모든 경우를 탐색하는 Brute Force 는 방법을 사용하였다.Logic 하나의 솔루션이라는 뜻은 2개의 operator가 짝을 이루었다는 뜻이니까 arr 라는 변수로 return할 output을 정의하고 arr의 크기가 2보다 작은 경우로 조건을 명시하고 target을 만들수있는 경우가 inputArray[idx]보다 작은 경우, 큰 경우, 같은 경우 3가지로 분기처리를 하였다. 작성하고 나니 동일 한 ..