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 map = new HashMap<>(); // 매번 객체 생성 불필요 + + // (jy - iy)^2 + (jx - ix)^2 = (ky - iy)^2 + (kx - ix)^2 + + for(int i=0; i