1. 문제https://leetcode.com/problems/is-subsequence/description/?envType=study-plan-v2&envId=leetcode-75 2. 요구사항1) 두 문자열 s와 t가 주어진다.2) s가 t의 부분 수열이라면 true를 반환하고, 그렇지 않으면 false를 반환한다.3) 부분 수열은 원래 문자의 순서를 유지하면서, 일부 문자를 삭제해서 얻을 수 있는 문자열이다.4) 문자를 삭제할 수 있지만, 순서를 바꾸면 안된다. 3. 핵심 아이디어1) 투 포인터 문자열 s와 t의 인덱스를 저장하는 sIdx와 tIdx를 사용하여s의 현재 문자와 t의 현재 문자가 일치하는 문자가 발견되면 sIdx를 증가시킨다. t를 끝까지 순회하는 동안 s의 모든 문자가 순서대..
1. 문제https://leetcode.com/problems/ransom-note/description/?envType=study-plan-v2&envId=top-interview-150 2. 요구사항1) 두 문자열 ransomNote와 magazine이 주어진다.2) ransomNote를 작성하기 위해 필요한 모든 문자를 magazine에서 가져올 수 있는지 확인한다.3) 각 문자는 magazine에서 단 한 번만 사용할 수 있다.4) ransomNote와 magazine은 영어 소문자로 구성된다. 3. 핵심 아이디어1) magazine의 알파벳 등장 횟수 저장 후, ransomNote에 알파벳이 등장하면 횟수 감소magazine의 알파벳 등장 횟수를 List 타입의 charCount 변수에..
1. 문제https://leetcode.com/problems/reverse-vowels-of-a-string/description/?envType=study-plan-v2&envId=leetcode-75 2. 요구사항1) 주어진 문자열 모음만 뒤집어서 문자열을 반환한다.2) 모음은 a, e, i, o, u이며, 대소문자 구분 없이 나타난다.2) 다른 문자는 원래 위치에 그대로 남아 있어야 한다. 3. 핵심 아이디어1) 투 포인터 사용 문자열의 맨 앞과 맨 끝에서부터 두 개의 포인터를 사용하여 각각 모음을 찾는다.왼쪽 포인터는 모음을 찾을 때까지 오른쪽으로 이동하고, 오른쪽 포인터는 모음을 찾을 때까지 왼쪽으로 이동한다. 두 포인터가 모음을 찾으면 두 포인터끼리 문자를 서로 교환한다.교환 후에는..
1. 문제https://leetcode.com/problems/valid-anagram/?envType=study-plan-v2&envId=top-interview-150 2. 요구사항1) 두 개의 문자열 s와 t가 있다.2) t가 s의 애너그램이면 true를 반환하고, 아니면 false를 반환한다.3) 애너그램은 두 문자열이 같은 문자를 같은 개수만큼 가지고 있지만, 순서는 다른 경우를 말한다. 3. 핵심 아이디어1) List에 알파벳이 나온 횟수 저장 알파벳 소문자 a부터 z의 각 문자의 등장 횟수를 저장할 List를 생성한다. s문자열을 순회하며 각 문자의 개수를 증가한다. t문자열도 순회하며 각 문자의 개수를 감소한다. 리스트 배열에 문자가 남아있는지, 남아있지 않은지로 애너그램을 판별..