본문 바로가기

Algorithm

(239)
[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...
[프로그래머스] SQL 동명 동물 수 찾기 (GROUP BY) SELECT 조회할 것1, 개수(조회할 것2) as 조회해서 만들 컬럼이름 FROM 조회할 테이블 GROUP BY 어느 기준으로 개수 묶어서 보여줄지 (그룹핑) HAVING 그룹핑한 내용 중에서 보여줄 기준선 ORDER BY 정렬할 컬럼과 정렬 오름내림 기준