본문 바로가기
728x90
반응형

전체 글274

67. Add Binary 두 이진 문자열을 입력으로 받아 그 합을 이진 문자열로 반환하는 문제입니다.public class Solution { public string AddBinary(string a, string b) { StringBuilder sb = new StringBuilder(); int i = a.Length -1, j = b.Length -1, carry = 0; while(i >= 0 || j >= 0){ int sum = carry; if(j >= 0) sum += b[j--] - '0'; if(i >= 0) sum += a[i--] - '0'; sb.Insert(0,(char)((sum.. 2024. 5. 3.
28. Find the Index of the First Occurrence in a String haystack 문자열에서 needle 문자열이 처음으로 나타나는 위치를 찾아 반환합니다. 만약 needle 문자열이 haystack 문자열에 없다면 -1을 반환합니다. 또한, needle 문자열이 비어있는 경우는 haystack 문자열의 시작 위치인 0을 반환합니다. public class Solution { public int StrStr(string haystack, string needle) { if(string.IsNullOrEmpty(needle)) return 0; for(int i = 0;i  haystack 문자열의 각 위치에서 시작하여 needle 문자열의 길이만큼의 부분 문자열이 needle 문자열과 일치하는지 확인합니다. 이 방법은 문자열 검색 알고리즘.. 2024. 5. 2.
237. Delete Node in a Linked List 주어진 노드를 연결 리스트에서 제거하는 문제입니다.이 문제는 연결 리스트의 헤드에 대한 접근 권한이 없으며, 대신 제거할 노드에 대한 접근 권한만 주어집니다.모든 연결 리스트의 값은 고유하며, 주어진 노드는 연결 리스트의 마지막 노드가 아님이 보장됩니다. 예를 들어: 예제 1: 입력으로 head = [4,5,1,9], node = 5가 주어지면, 출력은 [4,1,9]가 됩니다. 여기서 두 번째 노드인 값이 5인 노드가 제거되어야 합니다.예제 2: 입력으로 head = [4,5,1,9], node = 1이 주어지면, 출력은 [4,5,9]가 됩니다. 여기서 세 번째 노드인 값이 1인 노드가 제거되어야 합니다.제약 조건은 다음과 같습니다: 주어진 리스트의 노드 수는 범위 [2, 1000] 내에 있습니다. -1.. 2024. 5. 1.
203. Remove Linked List Elements 연결 리스트의 노드를 제거하는 문제입니다. 이 문제는 주어진 연결 리스트의 헤드와 정수 val이 주어지며, Node.val == val인 모든 노드를 연결 리스트에서 제거하고 새로운 헤드를 반환해야 합니다. 예를 들어: 예제 1: 입력으로 head = [1,2,6,3,4,5,6], val = 6이 주어지면, 출력은 [1,2,3,4,5]가 됩니다. 예제 2: 입력으로 head = [], val = 1이 주어지면, 출력은 []가 됩니다. 예제 3: 입력으로 head = [7,7,7,7], val = 7이 주어지면, 출력은 []가 됩니다. 제약 조건은 다음과 같습니다1: 리스트의 노드 수는 범위 [0, 10^4] 내에 있습니다. 1 0  /** * Definition for singly-linked list... 2024. 5. 1.
20. Valid Parentheses 주어진 문자열에서 괄호가 올바르게 짝지어져 있는지 확인하는 문제입니다. 열린 괄호는 같은 종류의 닫힌 괄호로 닫혀야 합니다. 괄호는 올바른 순서로 닫혀야 합니다.public class Solution { public bool IsValid(string s) { Stack stack = new Stack(); foreach(char c in s){ if(c =='(' || c == '{' || c == '['){ stack.Push(c); } else{ if(stack.Count() == 0) return false; char top = .. 2024. 4. 29.
21. Merge Two Sorted Lists 주어진 두 개의 정렬된 연결 리스트를 하나의 정렬된 리스트로 병합하는 문제입니다. 첫 번째 두 리스트의 노드를 이어 붙여서 새로운 정렬된 연결 리스트를 만들어야 합니다. 병합된 연결 리스트의 헤드 노드를 반환해야 합니다. /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val; * this.next = next; * } * } */ public class Solution { public ListNode MergeTwoLists(ListNode li.. 2024. 4. 23.
112. Path Sum 주어진 이진 트리에서 루트부터 리프까지의 경로 중 합이 특정 값과 같은 경로가 있는지 확인하는 문제입니다. 간단히 말하면, 주어진 트리에서 어떤 경로를 따라 이동하면서 노드의 값을 더했을 때, 그 합이 주어진 값과 같은지를 확인하는 것입니다. /** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNode left; * public TreeNode right; * public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) { * this.val = val; * this.left = left; * this.right = rig.. 2024. 4. 23.
222. Count Complete Tree Nodes 이진 트리에서 노드의 수를 세는 문제입니다. 이 문제에서는 완전 이진 트리의 루트가 주어지고, 트리에 있는 노드의 수를 반환해야 합니다. 완전 이진 트리는 모든 레벨이 완전히 채워져 있고, 마지막 레벨의 모든 노드는 가능한 한 왼쪽에 있습니다. 마지막 레벨 h에서 노드의 수는 1과 2h 사이입니다. 이 문제를 해결하기 위한 알고리즘은 O(n)보다 작은 시간 복잡도를 가져야 합니다. 예시: 예시 1: 입력: root = [1,2,3,4,5,6], 출력: 6 예시 2: 입력: root = [], 출력: 0 예시 3: 입력: root = 1, 출력: 1 제약 조건: 트리의 노드 수는 범위 [0, 5 * 10^4] 내에 있습니다. 0 /** * Definition for a binary tree node. * .. 2024. 4. 22.
728x90
반응형