728x90

leetcode 94

[Grind75-LeetCode] Longest Palindrome JAVA

[Grind75-LeetCode] Longest Palindrome - Easy 접근구현풀이주어진 문자열 s를 이용해 가장 긴 펠린드롬 문자의 길이를 구하는 문제이다. 소문자와 대문자 알파벳이 주어지고 각각 다른 문자로 취급하게 된다. 총 알파벳 52개를 사용해 가장 긴 펠린드롬의 길이를 구해야 한다.  가장 긴 펠린드롬 문장을 모두 찾아라와 같은 문제였다면 귀찮았겠지만 길이를 구하는 문제이기 때문에 단순하게 구할 수 있다. 펠린드롬이란 앞으로 뒤로 읽어도 똑같은 문자를 말하는데 그러기 위해선 가운데를 기준으로 양쪽이 같아야 한다. 그 말은 알파벳의 수가 최소 2개 이상이어야 하고 모든 짝수개의 알파벳을 사용한 뒤 홀수개의 알파벳이 존재한다면 가운데로 끼워 가장 긴 길이를 구할 수 있다.  pub..

[Grind75-LeetCode] Linked List Cycle JAVA

[Grind75-Leetcode] Linked List Cycle - EasyLinked List Cycle - LeetCode접근플로이드의 토끼와 거북이(Floyd's Tortoise and Hare)풀이노드가 연결된 리스트에 사이클이 존재하는지 알아내는 문제이다. 해당 사이트의 다른 문제들과 같이 배열이나 리스트 형태의 값이 주어지는 게 아닌 노드가 다음 노드의 값을 들고 있는 형태로 루트 노드 하나가 입력으로 주어진다. 편법으로 문제를 열심히 풀어왔던 나로서는 현재 노드의 값과 다음 노드의 값을 set에 저장한 뒤 똑같은 값이 나오면 한 바퀴를 돌았다는 말이니 true를 반환하면 되지 않을까? 하는 생각으로 풀어봤다. 그러나 노드 객체가 달라도 값이 같은 경우가 있고 예시 설명을 볼 땐 배열에 값이..

카테고리 없음 2024.10.09

[Grind75-LeetCode] Lowest Common Ancestor of a Binary Search Tree JAVA

[Grind75-Leetcode] Lowest Common Ancestor of a Binary Search Tree - Easy접근재귀풀이Grind75에 있는 leetcode 문제인 최저 공통 조상 노드?를 찾는 문제이다. 위키백과의 정의에 따르면 최저 공통 조상은 두 노드 p와 q에 대해, p와 q를 자식으로 가지는 T의 가장 낮은 노드로 정의된다고 한다. 그리고 노드가 자기 자신을 자식으로 가질 수 있다고 한다. 이 말은 뒤에서 설명하겠다. 아무튼 주어지는 이진 탐색 트리 구조를 가지고 p노드와 q노드의 최저 공통 조상 노드가 무엇인지 찾으면 되는데 이진 탐색 트리의 특성상 왼쪽 서브 트리의 모든 자식 노드는 루트 노드보다 값이 작고 오른쪽 서브 트리의 모든 자식 노드는 루트 노드보다 값이 큰 성질..

[Grind75-LeetCode] Merge Two Sorted Lists JAVA

[Grind75] Merge Two Sorted Lists - Easy접근구현풀이새로운 알고리즘 문제 사이트 풀이를 시작했다. 유명하다는 Leetcode의 문제를 75개의 주요 문제로 구성해 제공하는 사이트로 주차별로 문제를 나눠 풀 수 있게 도움을 준다. UI도 깔끔하고 프로그래머스의 상위호환 같은 환경을 제공해주는거 같다. 한 가지 아쉬운점은 아무래도 영어로 된 사이트이다 보니 문제 이해에 시간이 좀 걸리는 편이다. 처음 쉬움 단계의 문제를 몇 개 풀다가 느꼈는데 백준으로 치면 실버 저티어의 난이도는 되는게 아닌가 싶은 진짜 쉬움(?)이 아닌 상대적 쉬움 난이도인거 같다. 그렇다고 어려운건 아니지만 이게 쉬움이면 나중에 어려움 난이도는 어떤 문제들인가 싶다.  그래서 이번 문제는 연결된 노드가 리스트..

728x90