전체 글 157

[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

[leetcode] 162. Find Peak Element

일단 Peak이란 극댓값으로 양옆보다 큰 값을 의미한다.배열에서 극댓값을 찾는 방법은 두 가지가 있는데 첫번째는 순차 탐색이다.순차 탐색의 경우 처음부터 끝까지 양옆을 비교해가며 극댓값을 찾는 것이다. 시간복잡도는 O(n)이다. 또 다른 방법은 이진 탐색을 사용하는 것이다.극댓값을 찾는다는 것은 결국 배열에서 가장 큰 값을 찾는 것이다. 아래 코드처럼 배열의 left, right 인덱스를 두고 이 인덱스들을 바탕으로 중간값을 찾아 중간값과 중간 옆 값을 비교합니다.비교 결과를 바탕으로 인덱스를 옮겨가며 가장 큰 값의 인덱스를 찾습니다.class Solution { public int findPeakElement(int[] nums) { int left = 0, right = nums.l..

코딩테스트 2024.06.28