반응형

LeetCode 4

LeetCode[Java] - Longest Palindromic Substring 풀이

안녕하세요. Ruk 입니다. LeetCode의 Add Two Numbers Longest Palindromic Substring 문제를 풀어본 내용 공유하려 해요. 문제의 조건은 거꾸로해도 똑같으면서 가장 긴 문자열을 찾는 문제 입니다. 과거에 푼 적이 있는데 오랜만에 다시 풀어보았습니다. 네,,,,,, 약 100배나 속도가 더 걸리는 알고리즘을,,,,,,,, 같은 메모리를 사용하여 같은 결과물을 만들지만 속도차이가 이렇게 심하게 날 수도 있네요. 1030ms가 걸린 코드 입니다. b(n^3)을 ㅎㅎㅎㅎ 당당하에 for문 중첩하여 돌렸고, checker에서도 1번 돌게되니 총 3번이 중첩된 최악의 코드 입니다. 퇴근하고 23시에 풀면 그럴수 있다고? 생각되네요 앜ㅋㅋㅋㅋㅋ 과거에 제가 어떻게 풀었는지 바..

LeetCode[Java] - Longest Substring Without Repeating Characters 풀이

안녕하세요. Ruk 입니다. LeetCode의 Longest Substring Without Repeating Characters 문제에 대하여 어떻게 접근하였고 풀어보았는지 풀이과정을 공유해보려 해요. 주어진 문자열을 입력받았을 때 해당 문자열에서 중복없이 가장 긴 문자열을 찾는 문제로 보이내요. 알고리즘에서 아래와 같은 조건을 걸어 보았습니다. 1. Set 인터페이스를 활용하여 중복을 체크하자. 2. 중복이 발견되면 길이를 저장 ( length비교 해야겠죠? ) 3. 중복이 사라질 때 까지 Set에서 문자열 제거 위 조건을 구현한 코드입니다. 하지만 속도와 메모리가 너무나도 아쉽습니다. b(n^2)의 복잡도를 가지게 되는데 while문을 사용하지 않고 최대길이를 구할 방법을 더 궁리해봐야 겠내요. 뭔..

LeetCode[Java] - Add Two Numbers 풀이

안녕하세요 Ruk 입니다. 오늘은 LeetCode의 Add Two Numbers 문제를 풀어본 내용을 공유하려 해요. 2개의 ListNode가 주어졌을 때 10진법의 숫자 합산 연산을 하여 ListNode를 다시 반환하는 문제내요. 예시를 보면 각 노드의 첫번째 자리는 1의 자리로 정의가 되어있습니다. 해결 방법으로는 아래와 같이 정리하습니다. ( 개인적으로 알고리즘을 풀 때 해당 문제에서 처리해야할 요건을 정리 후 풀이에 들어가는게 코드 짜기에 전 더 편하더라고요. ) 1. 각 노드가 null인지 확인 후 합산한다. 2. 2개의 노드중 하나라도 next노드가 존재하면 반복한다. 3. 10이 넘어가면 carry를 체크한다. 4. 2개의 노드가 null이더라도 carry가 존재하면 자리수 1을 올려준다. ..

반응형