코딩테스트 99

[leetcode] 443. String Compression

문제 최초 풀이 -> 각 알파벳, 알파벳 개수 정보를 하나의 문자열에 모은 후 char[]에 다시 할당참고 풀이 - > 링크알파벳 개수를 groupLength으로 파악한 후 곧바로 char[]에 할당, 이게 끝날때까지 반복최초 풀이(2ms)class Solution { public int compress(char[] chars) { StringBuilder sb = new StringBuilder(); int cnt = 1; // 어떤 알파벳이 몇 개 있는지 sb에 구한다. for(int i = 1; i 1) { sb.append(cnt); } brea..

코딩테스트 2024.06.11

[leetcode] 724. Find Pivot Index

문제 최초 풀이(5ms)class Solution { public int pivotIndex(int[] nums) { int result = -1; int sum = Arrays.stream(nums).sum(); int presum = 0; for(int i = 0; i   참고 후 최종 풀이(1ms) 스트림을 사용하면 코드가 간결해지고, 가독성이 높아지는 건 맞는데 ms 단위로 시간을 줄이고자 할 때는 적절하지 않은 듯.. presum * 2 가 전체 합에서 nums[i]를 뺀 값, presum += nums[i++]로 반복 표현하기 등을 배움..세상 똑똑이들 참 많다 많어..class Solution { public int pivotInd..

코딩테스트 2024.06.09

[leetcode] 238. Product of Array Except self

문제 product는 '곱'이라는 뜻이다.즉, 문제는 자신을 제외한 배열의 곱을 구하라는 뜻이다.조건은 시간 복잡도는 O(n)이면서 나눗셈을 사용하지 말고 구현하라고 하였다. 조건에 맞게 풀기1. time O(n), space O(2n)2. timeO(n), space O(1) 인덱스 i의 product array except self을 구하면nums[0] * nums[1] * .... * nums[i -1]      *      nums[i + 1] * nums[i + 2] * .... * nums[n - 1] 앞 부분과 뒷 부분으로 나누어 메모를 한 후 필요한 값을 꺼내 쓸 수 있다.각각 앞, 뒤로 1을 추가해서 곱셈 진행할 수 있도록 한다. 참고 사이트 알고달레알고리즘 입문자를 위한 달레의 친절한 ..

코딩테스트 2024.06.09

[leetcode] 151. Reverse Words in String

문제 최초 풀이(17ms) -> trim, replaceAll(정규식) 사용해서 문자열 앞뒤, 다중 공백 제거최종 풀이(6ms) -> trim, replaceAll(정규식) 후 문자열 reverse, while문으로 문자열을 훑으면서 공백이 있을 경우 two pointer로 reverse 해준다. solution 풀이 참고해서 품(코드 참고 x) 최초 풀이class Solution { public String reverseWords(String s) { // remove leading, trailing spaces & reduce multiple spaces s = s.trim().replaceAll(" +", " "); int start = 0;..

코딩테스트 2024.06.07