본문 바로가기

Algorithm/Leet Code

(124)
[LeetCode] 1. TwoSum + 테스트케이스 간만에 재미로 다시 푸니까 새롭기도 하고 배우는 것도 있고 좋았다. 일단 테스트케이스 import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.Test; class LC_00001_TwoSumTest { @Test void twoSumTest1() { LC_00001_TwoSum ts = new LC_00001_TwoSum(); int[] result = ts.twoSum(new int[]{2,7,11,15}, 9); assertThat(result).containsExactly(0,1); } @Test void twoSumTest2() { LC_00001_TwoSum ts = new LC_00001_Two..
[LeetCode] 130. Surrounded Regions (BFS, DFS, TDD, 코테, 릿코드, tech interview) 간만에 미디움 풀었더니 빡셌음 퍼포먼스는 딱히.. 리팩토링 하느라 테스트코드만 매우 꼼꼼하게 작성하게 됨 테스트코드 import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; class LeetCode_0130_SurroundedRegionsTest { @DisplayName("BFS, leetcode 130. Surrounded Regions Test 1.") @Test void surroundedRegionsTest_1() { LeetCode_013..
[LeetCode] 202. Happy Number (TDD, 코테, 릿코드, tech interview) 간만에 문제풀이 - 테스트코드 import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.Test; public class LeetCode_0202_HappyNumberTest { @Test public void isHappyTest() { LeetCode_0202_HappyNumber test = new LeetCode_0202_HappyNumber(); assertThat(test.isHappy(19)).isEqualTo(true); assertThat(test.isHappy(2)).isEqualTo(false); } } - 풀이코드 import java.util.HashSet; import java.ut..
[LeetCode] 94. Maximum Number of Balls in a Box (TDD, 코테, 릿코드, tech interview) 풀이 코드 import java.util.ArrayList; import java.util.List; public class LeetCode_0094_BinaryTreeInorderTraversal { private List result = new ArrayList(); public List inorderTraversal(TreeNode94 root) { if (root == null) { return result; } recursiveInorderTraversal(root); return result; } private void recursiveInorderTraversal(TreeNode94 node) { if (node.left != null) { recursiveInorderTraversal(no..
[LeetCode] 771. Jewels and Stones(코딩테스트, 릿코드, tech interview) Hash 쓰는 것 외에 뭐 딱히 퍼포먼스 향상시킬 것이 있나 싶다. // Process // 1. Input // 2. jewels 로 해시셋 만든다. // 3. stones 에서 jewel 이 있는지 확인해서 // 3.1. jewel 이면 counting // 4. Return count import java.util.HashSet; import java.util.Set; public class LeetCode_0771_JewelsAndStones { public int numJewelsInStones(String jewels, String stones) { Set set = new HashSet(); for (int i = 0; i < jewels.length(); ++i) { set.add(jewe..
[LeetCode] 7. Reverse Integer (코딩테스트, 릿코드, tech interview) 프로그래밍 처음 시작할 때, 막 풀었던 것보다 코드도 깨끗해지고 퍼포먼스도 훨씬 올라가서 나름 좋았다. 3번에 걸쳐서 리팩토링 했고, 최대 퍼포먼스 뽑아냄 하지만 개인적으로는 2번째 코드가 좀 더 정리하면 가장 읽기 편할 것으로 보여서 좋아보인다. package algorithm_sites.leetcode; public class LC_0007_ReverseInteger { public int reverse_3(int x) { if (x == 0) { return 0; } boolean isPositive = x > 0; int result = 0; int pop; try { while (x != 0) { pop = x % 10; x /= 10; if (isPositive && result > (Inte..
[LeetCode] 1. Two Sum (코딩테스트, 릿코드, tech interview) 릿코드 하나씩 공부하면서 열심히 풀기로 1, 2, 3 세번에 걸쳐서 퍼포먼스를 올렸고, 거의 최대치로 나옴 Process // 1. Input // 2. Iterate all with hashmap (i) // 2.1. Check target-nums[i] // 2.1.1. If so -> return answer // 3. Finish package algorithm_sites.leetcode; import java.util.*; public class LC_00001_TowSum { public int[] twoSum_1(int[] nums, int target) { if (nums.length == 2) { return new int[] {0,1}; } for (int i = 0; i < nums...
LeetCode #728 SelfDividingNumbers. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접, 데이터.. LeetCode #728 SelfDividingNumbers. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접, 데이터베이스, sql, query, 쿼리 It's been a long time.. 아주 오랜만에.. Runtime: 0 ms, faster than 100.00% of C++ online submissions for Self Dividing Numbers. Memory Usage: 6.3 MB, less than 97.68% of C++ online submissions for S..