From e150cdb37cf38ccacbe1e6b00ea81e072c0d03bd Mon Sep 17 00:00:00 2001 From: SinnoLn Date: Tue, 6 Oct 2026 22:38:35 +0900 Subject: [PATCH 1/2] 125. Valid Palindrome --- .../125. Valid Palindrome.java" | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 "leetcode3/\354\235\264\354\247\204\355\235\254/125. Valid Palindrome.java" diff --git "a/leetcode3/\354\235\264\354\247\204\355\235\254/125. Valid Palindrome.java" "b/leetcode3/\354\235\264\354\247\204\355\235\254/125. Valid Palindrome.java" new file mode 100644 index 00000000..497531c6 --- /dev/null +++ "b/leetcode3/\354\235\264\354\247\204\355\235\254/125. Valid Palindrome.java" @@ -0,0 +1,36 @@ +/* + +1. 아이디어 : 문자열에서 숫자와 알파벳만 별도로 변환 후 펠린드롬 여부 체크 + +2. 시간복잡도 : O(2N) => O(N) + +3. 자료구조/알고리즘 : 완전탐색 + + */ + +class Solution { + public boolean isPalindrome(String s) { + // 소문자, 숫자만 + StringBuilder sb = new StringBuilder(); + + for(int i=0; i='a' && c<='z') sb.append(c); + else if(c>='A' && c<='Z') sb.append((char)(c+32)); + else if(c>='0' && c<='9') sb.append(c); + } + + return isPalindrome(sb); + } + + private boolean isPalindrome(StringBuilder sb) { + int l = 0; + int r = sb.length()-1; + + while(l Date: Tue, 6 Oct 2026 22:40:43 +0900 Subject: [PATCH 2/2] 447. Number of Boomerangs --- .../447. Number of Boomerangs.java" | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 "leetcode3/\354\235\264\354\247\204\355\235\254/447. Number of Boomerangs.java" diff --git "a/leetcode3/\354\235\264\354\247\204\355\235\254/447. Number of Boomerangs.java" "b/leetcode3/\354\235\264\354\247\204\355\235\254/447. Number of Boomerangs.java" new file mode 100644 index 00000000..6ae904c0 --- /dev/null +++ "b/leetcode3/\354\235\264\354\247\204\355\235\254/447. Number of Boomerangs.java" @@ -0,0 +1,48 @@ +/* + +1. 아이디어 : HashMap 자료구조의 특징 활용 + 한 점을 기준점으로 잡고, 두점 사이의 거리가 같은 개수를 셈 + 이후 모든 경우의 수를 계산 + +2. 시간복잡도 : O(N^2) + +3. 자료구조/알고리즘 : HashMap 자료구조 특징, 두 점사이의 거리 + + */ + +class Solution { + public int numberOfBoomerangs(int[][] points) { + // i and j 거리 == i and k 거리 + // 최대 500개의 고유한 튜플 + // 22 33 11 22 11 33 (절댓값) + + int ans = 0; + Map map = new HashMap<>(); // 매번 객체 생성 불필요 + + // (jy - iy)^2 + (jx - ix)^2 = (ky - iy)^2 + (kx - ix)^2 + + for(int i=0; i