Algorithm/LeetCode

    35. Search Insert Position

    문제 파악 및 재정의 중복없는 정수로 이루어진 정렬된 배열과 목표 값이 주어진다. 목표를 찾으면 해당 index를 반환 목표 없다면 들어갈 적합한 자리의 index를 반환하라 자료구조 및 알고리즘 선택 배열 순회 / 그리디? 구현 class Solution { public int searchInsert(int[] nums, int target) { int ret = nums.length; for(int idx = 0; idx < nums.length; idx++) { if(target

    242. Valid Anagram

    문제 파악 및 재정의 유효한 아나그램 s와 t 두가지 문자열이 주어지고 t가 s에 대해 아나그램을 충족하면 true 아니라면 false를 반환한다. 애너그램은 일반적으로 모든 원래 문자를 정확히 한 번만 사용하여 다른 단어나 구의 문자를 재배열하여 형성된 단어 또는 구입니다. 자료구조 및 알고리즘 설계 String to char[] 1 ~ 5 * 10^4 sorting 후 비교 구현 class Solution { public boolean isAnagram(String s, String t) { char[] sArr = s.toCharArray(); char[] tArr = t.toCharArray(); Arrays.sort(sArr); Arrays.sort(tArr); return Arrays.equa..

    task-scheduler-ii

    문제 파악 및 재정의 더보기 작업 스케쥴러 || 순서대로 완료해야 하는 작업을 나타내는 양의 정수 작업의 인덱스가 0인 배열이 제공됩니다. 여기서 tasks[i]는 i번째 작업의 유형을 나타냅니다. 또한 동일한 유형의 다른 작업을 수행하기 전에 작업 완료 후 경과해야 하는 최소 일 수를 나타내는 양의 정수 space가 제공됩니다. 모든 작업이 완료될 때까지 매일 다음 중 하나를 수행해야 합니다. 작업에서 다음 작업을 완료하거나 브레이크를 걸어야 합니다. 모든 작업을 완료하는 데 필요한 최소 일수를 반환합니다. when space 3 X X 1 1 2 1 2 [2] 1 2 3 4 5 6 -> 6 space 3 1,2,1,2,1,2,1,2 1 2(_) _ _ 1 1 2 1 2 3 1 array indexin..

    [EASY] longest-palindrome

    문제 유형은 Hash Table, String, Greedy 문제이다. 주어진 문자열로 만들 수 있는 가장 긴 회문의 길이를 반환하는 문제이다. /* 문제 파악 및 재정의 palindrome이란 회문 앞으로 뒤로 해도 같은 문장을 의미함 주어진 문자열 s로 만들 수 있는 가장 긴 회문의 길이를 반환하시오. 자료구조 및 알고리즘 설계 회문을 만들려면 무엇을 해야 할까 어떤 알파벳이 복수개 이상 존재한다면 해당 알파벳으로 앞 뒤를 설정하여 회문을 완성 할 수 있다. 그 외 단수개의 알파벳의 경우 가운데 넣어서 추가함으로써 회문의 길이를 늘릴 수 있음 Wednesday e?e 3 apple p?p 3 구현 중복되는 알파벳을 지울때마다 2씩 추가 남은 문자열의 길이가 0이 아니라면 +1 0이면 그대로 반환 */..

    [LeetCode] - How Many Numbers Are Smaller Than the Current Number

    brute force => 500 ^ 500 => 25000 성능상으로 느리진 않을거 같긴함 brute force 말고 위치기억 sorting? 순회하면서 나머지 비교 selection sort 생각을 해봅시다 주어진 nums배열을 두고 배열을 복사한다. space complexity O(N) 복사한 배열을 sorting time complexity O(N) X => tim sort -> O(n log n) Map key는 음 계수정렬을 써볼까 어짜피 0 ~ 100 공간만 있으면 됌 import java.util.*; class Solution { public int[] smallerNumbersThanCurrent(int[] nums) { int numsCount = nums.length; int[] ..

    [LeetCode] Max Consecutive Ones

    0과 1로 이루어진 nums 배열에서 연속된 1이 가장 많이 이어졌을때 수를 반환하시오 class Solution { public int findMaxConsecutiveOnes(int[] nums) { /* 이진 배열인 nums가 주어졌을때, 연속된 1의 최대수를 반환하시오. 1 = maximum) maximum = temp; } return maximum; } } Runtime: 1 ms, faster than 100.00% of Java online submissions for Max Consecutive Ones. Memory Usage: 40.2 MB, less than 76.94% of Java online submissions for Max Consecutive Ones.