릿코드 이지5 LeetCode(릿코드) - Merge Two Sorted Lists 두 개의 정렬된 LinkedList를 하나의 정렬된 List로 병합하는 문제입니다. 예시는 아래와 같습니다. Point 1. 문제에서 주어진 ListNode 클래스를 사용하여 풀이해야 한다. 2. LinkedList의 특징과 Java 주소값 참조 개념에 대해 이해하고 있어야 한다. 처음엔 쉬운 문제라고 생각했는데 거의 1시간이 걸렸다. 자료구조를 제대로 이해하고 있다고 착각하고 있었다는 것을 깨닫게 해준 문제.. /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int.. 2021. 12. 6. LeetCode(릿코드) - Valid Parentheses 3가지 형태의 괄호로 이루어진 문자열이 input으로 주어질 때, 해당 괄호가 유효한지 검증하는 문제입니다. Point 1. Open bracket이 주어진 이후에는 반드시 같은 형태의 닫는 괄호가 나와야 한다. 2. Open bracket이 모두 닫히지 않은 형태도 고려해줘야 한다. class Solution { public boolean isValid(String s) { boolean answer = true; Stack stack = new Stack(); int idx = 0; while(answer && idx 2021. 12. 5. LeetCode(릿코드) - Longest Common Prefix 문자열 배열을 input으로 주어질 때, 배열의 모든 원소에 적용될 수 있는 '공통 접두사'를 찾는 문제입니다. 복잡한 아이디어가 필요한 문제는 아닌 것 같습니다. Point 1. 접두사란, 접사(接辭)의 하나로 어떤 낱말 앞에 붙어서 의미를 첨가하여 한 다른 낱말을 이루는 말. 정의에 따라 반드시 0번 인덱스부터 시작해야한다. class Solution { public String longestCommonPrefix(String[] strs) { StringBuilder sb = new StringBuilder(); int minLeng = 201; for(String str : strs) { minLeng = Math.min(minLeng, str.length()); } for(int i=0 ; i 2021. 12. 5. LeetCode(릿코드) - Two Sum 정수 배열 nums와 정수 target이 input으로 주어질 때, nums안의 2개 element 합이 target과 같은 element의 index를 구하는 문제입니다. 예시는 다음과 같습니다. Point 1. 문제의 답은 오직 한 가지 쌍이며, 같은 element를 두 번 사용하지 않는다. 나는 단순하게 풀이를 했다. Flow 1) 주어진 배열 nums를 정렬한 sortArr에서 합이 target이 되는 element를 탐색 Flow 2) 해당 element의 index를 탐색 class Solution { public static int INF = 987654321; public int[] twoSum(int[] nums, int target) { int[] answer = new int[]{IN.. 2021. 12. 4. LeetCode(릿코드) - Roman to Integer 로마 숫자가 Input으로 들어오면 이를 10진수로 변환하는 프로그램을 작성하는 문제입니다. 예시는 다음과 같습니다. Point 1. Subtraction은 IV, XC, CD 등의 형태만을 가진다.(IIV, CCM 같은 형태는 없음) 2. 로마 숫자는 내림차순으로 작성되므로 Input 문자열의 가장 뒷부분부터 체크하면 수월하다. import java.util.*; class Solution { public int romanToInt(String s) { Map roman = new HashMap(); roman.put('I', 1); roman.put('V', 5); roman.put('X', 10); roman.put('L', 50); roman.put('C', 100); roman.put('D', .. 2021. 12. 3. 이전 1 다음