Algorithm(62)
-
[Leetcode/Easy] 두 수의 합 (1. Two Sum, Swift)
https://leetcode.com/problems/two-sum/description/ 🤔 문제 설명덧셈하여 타깃 숫자를 만들 수 있는 배열의 두 숫자 인덱스를 반환하세요.입력된 nums에는 정확히 하나의 답이 있다고 가정하며, 또한 동일한 요소를 두 번 사용하지 않는다고 가정합니다.답은 임의의 순서로 반환할 수 있습니다.[2,7,11,15], target = 9// [0,1] 🧑🏻💻 첫 번째 풀이와 코드 (Swift ver.)단순하게 중첩 반복을 사용하기보다, 한 번의 반복에서 한 값을 가지고 target-num으로 나머지 한 값을 찾는 방법을 생각했다.값은 array.firstIndex(of: target-num) 문법을 사용해서 찾을 수 있었고,자기 자신을 찾는 경우는 생략하기 위해 조..
2024.07.01 -
[Leetcode/Medium] 그룹 애너그램 (49. Group Anagrams, Swift)
https://leetcode.com/problems/group-anagrams/description/ 🤔 문제 설명문자열 배열이 주어지면, 애너그램 단위로 그룹화하세요.애너그램(Anagram)이란 다른 단어나 구문의 글자를 재정렬하여 다른 뜻을 가진 단어로 바꾸는 것을 뜻합니다.(예시: '문전박대' -> '대박전문')strs = ["eat","tea","tan","ate","nat","bat"]// [["bat"],["nat","tan"],["ate","eat","tea"]] 💡 풀이입력으로 들어온 String Array를 반복하면서 해당 단어랑 같은 애너그램 단위로 그룹화할 수 있는 단어를 찾는 것이 이 문제의 핵심이었다.이때 단어를 sorted해주게 되면, 같은 애너그램 단위에서 나올 수 있는 ..
2024.06.30 -
[Leetcode/Easy] 가장 흔한 단어 (819. Most Common Word, Swift)
https://leetcode.com/problems/most-common-word/description/ 🤔 문제 설명paragraph에서 금지된 단어를 제외하고, 가장 빈번하게 등장하는 단어를 출력하세요.paragraph의 단어는 대소문자를 구분하지 않으며, 구두점(마침표, 쉼표 등) 또한 무시합니다. 답은 소문자로 반환해야 합니다.paragraph = "Bob hit a ball, the hit BALL flew far after it was hit."banned = ["hit"]// "ball" 💡 풀이사용되는 내부 메서드가 많아서 그렇지 풀이 과정은 단순하다.한 문장으로 되어있는 것을 단어별로 구분 -> 소문자 변환 + 구두점 무시 -> 단어별로 빈번 횟수 count -> 가장 많은 coun..
2024.06.29 -
[Leetcode/Medium] 로그 파일 재정렬 (937. Reorder Log Files, Swift)
https://leetcode.com/problems/reorder-data-in-log-files/description/ 🤔 문제 설명각 로그는 공백으로 구분된 단어 문자열이며, 여기서 첫 번째 단어는 식별자입니다.로그에는 문자 로그(식별자를 제외한 모든 단어는 소문자로 구성), 숫자 로그(식별자를 제외한 모든 단어는 숫자로 구성) 두 가지 유형이 있습니다.제공되는 로그 배열을 아래 규칙에 맞추어 재정렬하세요.문자로 구성된 로그는 모든 숫자 로그보다 앞에 와야 합니다.식별자는 순서에 영향을 끼치지 않지만, 문자가 동일한 경우에는 식별자에 따라 사전순으로 정렬합니다.단, 숫자 로그는 입력 순서대로 유지합니다.logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let..
2024.06.29 -
[Leetcode/Easy] 문자열 뒤집기 (344. Reverse String, Swift)
https://leetcode.com/problems/reverse-string/description/ 🤔 문제 설명시간 복잡도 O(1)을 기준으로 해서 문자열을 뒤집는 함수를 작성하세요.단, 입력 문자열은 문자 배열로 주어지며, return 없이 리스트 내부를 직접 조작하는 방식으로 문제를 해결해야 합니다.["h","e","l","l","o"]# ["o","l","l","e","h"] 💡 풀이Swift의 기본 메서드(reversed)를 이용해서 아주 쉽게 해결할 수 있는 문제이다. 🧑🏻💻 코드 (Swift ver.)class Solution { func reverseString(_ s: inout [Character]) { s = s.reversed() }}
2024.06.28