전체 글 151

4. Median of Two Sorted Arrays

문제  1. 이미 정렬되어있는 두 개의 배열 nums1, nums2가 주어졌기 때문에 요소를 각각 비교하며 하나로 합친다.2. 홀수의 경우 중앙에 있는 수, 짝수의 경우 중앙에 있는 두 개의 수를 2로 나눈 수를 반환한다. class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int size = nums1.length + nums2.length; int[] nums = new int[size]; int index1 = 0; int index2 = 0; for(int i = 0; i

코딩테스트 2024.09.01

[leetcode] 1657. Determine if Two Strings Are Close

문제 1. 문제 해석두 string이 close한지 판단하는 문제 close 한 기준은 두 개의 operation을 시도했을 때 부합했을 경우이다.Operation 1: 두 개의 요소의 위치를 바꾸었을 때For example, abcde -> aecdbOperation 2: Operation1을 기반으로 한 글자의 위치에 다른 글자로 모두 대체하고 반대로도 시행했을 경우For example, aacabb -> bbcbaa (all a's turn into b's, and all b's turn into a's)부합할 경우 true, 아닐 경우 false 2. 문제 풀이 방향주어진 두 개의 string의 character와 character's occurence를 조사한다. 조사한 두 string의 cha..

코딩테스트 2024.08.24

[leetcode] 80. Remove Duplicates from Sorted Array II

문제/**오름차순으로 정렬된 배열이 주어지고 다른 배열을 생성하지 않은 채 배열 내 중복값 일부를 삭제하는 문제인데,적어도 두 개 이상 존재하는 요소를 삭제하는 문제입니다.어떤 언어에서는 배열의 크기를 줄이는게 불가능하기 때문에 만약 중복값을 제거한 후 k개의 요소가 있다면 앞쪽 k개의 배열 요소만 체크합니다.그렇기 때문에 k개 이후부터는 뭐가 있든 상관없음1, 1, 1, 2, 2, 31이 3개이기 때문에 하나를 삭제2는 2개이므로 그대로3은 1개이므로 2개보다 작아서 그대로1, 1, 2, 2, 30, 0, 1, 1, 1, 1, 2, 3, 30이 2개이므로 그대로1은 4개이므로 2개 삭제2는 1개로 2개보다 작아서 그대로3은 2개이므로 그대로0, 0, 1, 1, 2, 3, 3 -> 7개이전값을 고려하되 ..

코딩테스트 2024.08.03

[leetcode] 26. Remove Duplicates from Sorted Array

문제 class Solution { public int removeDuplicates(int[] nums) { int index = 0; for(int num: nums) { if (index nums[index - 1]) { nums[index] = num; index++; } } return index; }}  Set, List 써서 푸는 풀이/** Set으로 nums를 하나씩 체크 이후 nums에 앞에서부터 Set에 있는 elements를 하나씩 넣어주기 다만 Set의 경우 입력한 순서를 보장하고 있지 않기 때문에 List로 정렬..

코딩테스트 2024.08.03

[leetcode] 14. Longest Common Prefix

문제 1. 첫번째 스트링을 prefix 기준으로 세움2. 스트링 배열 내 요소들과 비교3. 스트링 배열 크기가 1일 경우 첫번째 스트링 바로 리턴4. 스트링 배열 내 요소 중 크기가 prefix의 크기보다 작을 경우 prefix의 크기를 substring class Solution { public String longestCommonPrefix(String[] strs) { String prefix = strs[0]; if (strs.length == 1) { return prefix; } for(int i = 1; i str.length()) { prefix = prefix.substring(0, s..

코딩테스트 2024.08.01

[leetcode] 12. Integer to Roman

1. 현타오도록 복잡하게 푸는 방법.. /** 1. 숫자를 로마 숫자로 바꿔서 리턴하면 된다. 가장 큰 단위부터 왼쪽 -> 오른쪽으로 구성하면 되고 3000을 나타낼때 1000을 MMM 쓰는 것처럼 10자리만 여러번 쓸 수 있고 5, 50, 500의 경우는 여러번 쓸 수 없음 2. 3000 -> 1000이 3개 -> MMM 700 -> 500이 1개, 200이 2개 -> DCC 40 -> XL (subtractive form) 9 -> IX (subtractive form) 50 -> L 8 -> 5가 1개, 3이 세개 -> VIII 1000 -> 1000이 1개 -> M 900 -> CM 90 -> XC 4 -> IV ..

코딩테스트 2024.07.19

[leetcode] 27. Remove Element

문제 링크  1. 문제 설명 및 결과 예측in-place - 제자리에서 배열 내에 있는 모든 val 값을 지우고 나서 val이 전부 제거된 배열 nums의 사이즈를 반환한다.  이 문제의 정답 평가 기준  remove 한 후 배열의 사이즈가 반환되고 이것을 k라고 하며 0부터 k까지 sort한 배열이 예상값과 동일할 경우 통과  -> val이 아닌 값들을 배열 인덱스 k 안쪽으로 두고 그 k + 1 부터 위치할 수 있도록 함. 2. 예시 체크 2-1. [3, 2, 2, 3] -> [_, 2, 2, _] -> [2, 2, _, _] -> 확인 시 [2, 2] true 2-2. [0, 1, 2, 2, 3, 0, 4, 2] -> [0, 1, _, _, 3, 0, 4, _] -> [0, 1, 3, 0, 4, _..

코딩테스트 2024.07.18