[LeetCode] 20. Valid Parentheses (Easy)

문제로 내가 푼 것 틀림 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 class Solution { public boolean isValid(String s) { Map<Character, Integer> patterns = new HashMap(); Stack<Character> stack = new Stack<>(); int sum = 0; patterns.put('(', 1); patterns.put(')', 2); patterns.put('{', 3); patterns.put('}', 4); patterns.put('[', 5); patterns.put(']', 6); if(s.length() % 2 == 1) return false; for(int i = 0; i < s.length(); i++, i++) { if(patterns.get(s.charAt(i)) % 2 == 1) { stack.push(s.charAt(i)); // sum += patterns.get(s.charAt(i)).intValue() + 1; } else if(patterns.get(s.charAt(i)) % 2 == 0) { // sum -= patterns.get(s.charAt(i)).intValue(); if(stack.isEmpty()) return false; Character temp = stack.pop(); if(patterns.get(temp) + 1 != patterns.get(s.charAt(i))) return false; } } if(sum != 0) return false; return true; } } 답안1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for(char c : s.toCharArray()) { if(c == '(') stack.push(')'); else if(c == '[') stack.push(']'); else if(c == '{') stack.push('}'); else if(stack.isEmpty()) return false; else if(stack.pop() != c) return false; } return stack.isEmpty(); } } 참고 1 else if(stack.isEmpty()) return false; 답안에서 위 조건과 아래 조건의 순서가 바뀌면 에러가 발생한다. ...

2024년 6월 2일 · 김태영

[LeetCode] 13. Roman to Integer (Easy)

문제로 내가 푼 것 못품 답안1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 class Solution { public int romanToInt (String s){ Map<Character, Integer> m = new HashMap<>(); m.put('I', 1); m.put('V', 5); m.put('X', 10); m.put('L', 50); m.put('C', 100); m.put('D', 500); m.put('M', 1000); int ans = 0; for (int i = 0; i < s.length(); i++) { if(i < s.length() - 1 && m.get(s.charAt(i)) < m.get(s.charAt(i+1))){ ans -= m.get(s.charAt(i)); } else { ans += m.get(s.charAt(i)); } } return ans; } }

2024년 6월 1일 · 김태영

미용실 객단가 — 유목민의 미용실 탐방기

미용실 유목민은 머리카락를 자르는 주기가 올 때마다 곤혹스럽지 않을 수 없다. 장인어른은 이발과 염색까지 이만원에 해주는 맛집(?) 있고 동서(사실 형님으로 모시고 있다)는 남양주에서 잠실까지 원정을 떠난다고 한다. ...

2024년 6월 1일 · 김태영

[LeetCode] 9.Palindrome Number (Easy)

문제로 내가 푼 것 못품 답안1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Solution { public boolean isPalindrome (int x){ if(x < 0) { return false; } long reversed = 0; long temp = x; while(temp != 0) { int digit = (int) (temp % 10); reversed = reversed * 10 + digit; temp /= 10; } return (x = reversed); } } 답안2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Solution { public boolean isPalindrome (int x){ if(x < 0 || x != 0 && x % 10 == 0) { return false; } long reversed = 0; while(x > reversed) { reversed = reversed * 10 + x % 10; x /= 10; } return (x == reversed) || (x == reversed / 10); } }

2024년 5월 31일 · 김태영

[LeetCode] 1. Two Sum (Easy)

문제로 내가 푼 것 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Solution { public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; for(int i = 0; i < nums.length; i++){ for(int j = 0; j < nums.length; j++){ if(i == j) continue; if(i > j) continue; if(nums[i]+nums[j] == target) { result[0] = i; result[1] = j; } } } return result; } } 답안1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int n = nums.size(); for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (nums[i] + nums[j] == target) { return {i, j}; } } } return {}; // No solution found } }; 답안2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> numMap = new HashMap<>(); int n = nums.length; // Build the hash table for (int i = 0; i < n; i++) { numMap.put(nums[i], i); } // Find the complement for (int i = 0; i < n; i++) { int complement = target - nums[i]; if (numMap.containsKey(complement) && numMap.get(complement) != i) { return new int[]{i, numMap.get(complement)}; } } return new int[]{}; // No solution found } } 답안3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> numMap = new HashMap<>(); int n = nums.length; for (int i = 0; i < n; i++) { int complement = target - nums[i]; if (numMap.containsKey(complement)) { return new int[]{numMap.get(complement), i}; } numMap.put(nums[i], i); } return new int[]{}; // No solution found } }

2024년 5월 30일 · 김태영

[일상] 블로그 개시

깃허브 블로그로 흔적 기록하기 시작

2024년 5월 29일 · 김태영