본문 바로가기

easy67

[Leetcode] 242. Valid Anagram 문제 : https://leetcode.com/problems/valid-anagram/ 두 개의 문자열 s, t가 주어질 때, t가 s의 anagram이면 true, 아니면 false를 반환하라. 소문자 알파벳 26개의 횟수를 저장하는 배열을 하나만들어서 s, t를 탐색하며 문자열 s의 문자가이 등장할때는 +1, 문자열 t의 문자가 등장할때는 -1을 해준다. 탐색 후 횟수를 저장한 배열의 모든 요소들이 0인 경우 true, 아닌 경우 false를 반환한다. 시간복잡도는 O(N). N = |s or t| 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/easy/242.%20Valid%20Anagram.cpp 2021. 11. 26.
[Leetcode] 461. Hamming Distance 문제 : https://leetcode.com/problems/hamming-distance/ Hamming distance 는 두 정수의 서로 다른 비트의 개수이다. 두 개의 정수 x, y가 주어지면 이들의 Hamming distance를 구하라. 서로 다른 비트들을 구하기 위해 x, y를 XOR 연산을 한다. XOR = 입력값이 같으면 0, 다르면 1. 연산 후 2로 나눠가면서 2의 나머지가 1인 경우(탐색중인 자리의 비트가 1인 경우) 정답 + 1을 한다. 시간복잡도는 O(logN) 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/easy/461.%20Hamming%20Distance.cpp 2021. 11. 19.
[Leetcode] 448. Find All Numbers Disappeared in an Array 문제 : https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/ nums 배열 크기와 같은 크기의 나온 적 있는 숫자들을 확인하는 bool 형 배열을 하나 만들고 nums 배열을 탐색하며 존재 여부를 세팅한다. bool 형 배열을 다시 한 번 탐색하며 나온적 없는 숫자인 경우 정답 배열에 추가한다. 시간/공간 복잡도는 O(N) 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/easy/448.%20Find%20All%20Numbers%20Disappeared%20in%20an%20Array.cpp 2021. 11. 18.
[Leetcode] 203. Remove Linked List Elements 문제 : https://leetcode.com/problems/remove-linked-list-elements/ 링크드 리스트의 헤드와 정수값 val 이 주어지면 링크드 리스트들 중 노드 값이 val 과 같은 노드들은 제거한 뒤 헤드를 반환하라. head 부터 탐색하면서 만일 탐색 중인 노드 값이 val이 아니라면 다음 노드를 탐색한다. 만일 삭제해야 하는 노드라면 탐색 중인 노드의 바로 전 노드에 탐색 중인 노드의 next 노드를 연결한다. 이를 위해 최근에 탐색한 노드를 별도의 변수에 저장하고 있어야 한다. 만일 삭제될 노드가 head 노드라면 탐색중인 노드의 next 노드를 새로운 head 노드로 세팅한다. 시간복잡도는 O(N). N = 링크드 리스트 노드 개수. 소스코드 : https://git.. 2021. 11. 13.
[Leetcode] 1413. Minimum Value to Get Positive Step by Step Sum 문제 : https://leetcode.com/problems/minimum-value-to-get-positive-step-by-step-sum/ 정수형 배열 nums가 주어질 때, nums 정수들을 처음부터 하나씩 수를 더해나갈 때 단계별 더하는 수가 항상 양수가 되도록 하는 최소 초기값 양수 startValue를 구하라. nums 배열을 앞에서부터 탐색하면서 부분합을 구한다. 구한 부분합들 중 최소값을 구해서 (최소값 x -1) + 1 한 값이 정답이 되는데 정답은 양수여야 하므로 만일 이 값이 양수가 아니라면 1을 반환한다. 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/easy/1413.%20Minimum%20Value%20t.. 2021. 11. 11.
[Leetcode] 94. Binary Tree Inorder Traversal 문제 : https://leetcode.com/problems/binary-tree-inorder-traversal/ 이진 트리의 루트가 입력값으로 주어지면 중위 순회한 결과를 반환해라. 재귀함수를 하나만들고 왼쪽 자식 노드로 탐색. 현재 노드의 값을 정답 배열에 저장. 오른쪽 자식 노드로 탐색. 만일 현재 탐색하는 노드가 null 이면 재귀함수를 종료한다. 시간복잡도는 O(N). N = 이진트리 노드 수 소스코드 : 2021. 11. 5.