전체 글
-
leetcode top interview 150 | Binary Tree Right Side View | DFSPS 2023. 9. 6. 17:17
Question 트리구조로 된 노드들이 주어지고 트리를 오른쪽에서 봤을때 가장 오른쪽에 있는 노드의 value를 트리의 위부터 아래까지 순서대로 리스트에 넣어서 반환한다 Accepted Code /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * }..
-
leetcode top interview 150 | Find Peak Element | Binary SearchPS 2023. 9. 5. 09:45
Question 양 옆의 수보다 큰 경우를 peak이라 한다. 주어진 정수배열에서 peak을 찾고 해당 인덱스를 반환하라. 만약 여러개의 peak이 존재하면 어떤 인덱스를 반환해도 된다. 배열 밖의 요소들은 가장 작은 수로 인지해라. 알고리즘의 시간복잡도는 O(logN)으로 작성해라. Accepted Code class Solution { public int findPeakElement(int[] nums) { int start = 0; int end = nums.length - 1; while(start
-
leetcode top interview 150 | Min Stack | ArrayListPS 2023. 9. 1. 09:58
Question Stack의 push, pop, top, getMin 메소드를 디자인하기 각각의 메소드는 O(1)의 복잡도로 수행되어야한다. MinStack()스택 개체를 초기화합니다. void push(int val)요소를 val스택에 푸시합니다. void pop()스택 맨 위에 있는 요소를 제거합니다. int top()스택의 최상위 요소를 가져옵니다. int getMin()스택에서 최소 요소를 검색합니다. Accepted Code - ArrayList로 Stack 구조 만들기 import java.util.LinkedList; class MinStack { List stack; List minStack; public MinStack() { stack = new ArrayList(); minStack ..
-
leetcode top interview 150 | Valid Anagram | HashMapPS 2023. 9. 1. 09:43
Question 문자열 t가 문자열 s의 애너그램이면 true, 아니면 false를 리턴한다. Accepted Code - HashMap import java.util.*; class Solution { public boolean isAnagram(String s, String t) { if(s.length() != t.length()) return false; Map map = new HashMap(); for(char c : s.toCharArray()){ map.put(c, map.getOrDefault(c, 0) + 1); } for(char c : t.toCharArray()){ if(map.containsKey(c) && map.get(c) > 0) map.put(c, map.get(c) - ..
-
leetcode top interview 150 | Ransom Note | HashMapPS 2023. 9. 1. 09:29
Question ransomNote 문자열이 magazine에 있는 문자로만 구성되어있으면 true, 아니면 false 리턴 magazine에 있는 각각의 문자는 ransomNote에서 한번만 사용할 수 있다. Accepted Code import java.util.*; class Solution { public boolean canConstruct(String ransomNote, String magazine) { int[] alpha = new int[26]; for(char c : magazine.toCharArray()){ alpha[c - 'a']++; } for(char c : ransomNote.toCharArray()){ int idx = c - 'a'; if(alpha[idx] > 0) ..
-
leetcode top interview 150 | Evaluate Reverse Polish Notation | StackPS 2023. 8. 31. 17:19
Question 후위표기법으로 나타낸 산술표현식이 문자열 배열로 주어졌을때 산출되는 답을 반환 Accepted Code - Stack import java.util.*; import java.util.regex.Pattern; class Solution { public int evalRPN(String[] tokens) { Stack stack = new Stack(); for(String token : tokens){ if(Pattern.matches("[+\\-*/]", token)){ int a = stack.pop(); int b = stack.pop(); switch(token){ case "+" -> stack.push(a+b); case "-" -> stack.push(b-a); case "..
-
leetcode top interview 150 | Minimum Size Subarray Sum | Sliding windowPS 2023. 8. 29. 10:21
Question 양수로 이루어진 정수배열이 주어졌을때, 하위배열의 합이 target number보다 같거나 클 경우 해당 하위배열의 최소 길이를 반환 target number에 해당하는 경우가 없으면 0 리턴 Accepted Code import java.util.*; class Solution { public int minSubArrayLen(int target, int[] nums) { int sum = 0; int minLen = Integer.MAX_VALUE; for(int left = 0, right = 0; right = target){ minLen = Math.min(minLen, right..