Algorithm 83

[Leetcode Top Interview 150] 150. Evaluate Reverse Polish Notation

난이도 : medium 문제링크 tokens이라는 String 배열이 주어짐 후위표기식으로 표현되는 배열 결과를 리턴하라 결과의 범위는 32bit division by zero 없음 -200 left - right; case "*" -> left * right; case "/" -> left / right; default -> 0; }; } } stack에서 먼저 뽑은 operand가 right operand (더 늦게 들어갔음) stack에서 나중에 뽑은 operand가 left operand (더 빨리 들어갔음) 4. 시간복잡도, 공간복잡도 예상 시간복잡도 : O(n) - tokens의 길이만큼 반복하면서 연산함 공간복잡도 : O(n) - 최대 tokens의 원소갯수의 반만큼 stack의 크기가 잡힐..

Algorithm/(Java) PS 2023.09.01

[Leetcode Top Interview 150] 2. Add Two Numbers

난이도 : medium 문제링크 두개의 링크드 리스트가 주어짐 음이 아닌 정수로 이루어짐 각 링크드 리스트는 역순으로 데이터가 표현됨 0을 시작으로 하는 데이터는 존재하지 않음 두개의 링크드 리스트 합을 표현한 링크드리스트를 리턴하라 링크드리스트의 길이 : 1~100 1. 접근법 l1과 l2의 next가 null이 될 때까지 반복 next에 새로운 노드를 붙임 반복 횟수별 노드를 생성하여 val값을 합으로 만듬 2. 의사코드 int carry = 0; ListNode ans = new ListNode(); int sum = 0; while (l1 혹은 l2이 null이 아니면) { ans.val = l1.val + l2.val + carry; if (ans.val >= 10) { ans.val -= 10..

Algorithm/(Java) PS 2023.08.28

[Leetcode Top Interview 150] 141. Linked List Cycle

난이도 : easy 문제링크 링크드리스트의 사이클 여부를 리턴하라 1. 접근법 head로 linked list를 순회하면서 hashSet의 값을 가리킨다면 사이클 2. 의사코드 Set hashSet = new HashSet(); while (head.next != null) { if (hashSet에 노드가 없다면) { hashSet에 노드 추가 } else { return true; } head 한칸 이동 } return false; 3. 구현 코드 public class Solution { public boolean hasCycle(ListNode head) { if (head == null) { return false; } Set hashSet = new HashSet(); while (head.n..

Algorithm/(Java) PS 2023.08.28