전체 글
278. First Bad Version
문제 파악 및 재정의 n개의 버전이 주어지고 isBadVersion API가 제공된다. 첫 번째 불량 버전을 찾는 기능을 구현하며, API의 사용 횟수를 최소화 하라. 자료구조 및 알고리즘 선택 BinarySearch -> start와 end를 옮겨가며 mid의 위치를 조정하여 찾는 방식 구현 public class Solution extends VersionControl { public int firstBadVersion(int n) { int answer = 0; int start = 0; int mid = n/2; int end = n; if(n == 1) return 1; // 탈출 조건 while(true) { if(end == start) { answer = start; break; } if(..
푸드 파이트 대회
문제 파악 및 재정의 푸파 -> 1 : 1 -> 음식 종류와 양이 바뀜 | -> [물] 0) { String tempIdx = idx+""; stringBuilder.append(tempIdx.repeat(food[idx])); } } temp = stringBuilder.toString(); reverse = stringBuilder.reverse().toString(); answer = temp + "0" + reverse; return answer; } } 회고 class Solution { public String solution(int[] food) { String answer = "0"; for (int i = food.length - 1; i > 0; i--) { for (int j = 0;..
가장 가까운 같은 글자
문제 파악 및 재정의 문자열 s가 주어졌을때 s의 각 위치마다 자신보다 앞에 나왔으며, 자신과 가장 가까운 곳에 있는 같은 글자의 위치를 int[]로 반환하라. 자료구조 및 알고리즘 선택 Counter Sorting(계수정렬) 문자열의 길이만큼의 정수형 배열과 알파벳에 해당하는 정수 배열을 선언 알파벳에 미리 -1값을 채워두고 주어진 문자열을 순회 아스키코드를 활용하여 해당 순번이 초기값인지 아닌지를 판별 후 반환할 배열에 대입 대입후 index를 넣어둠 구현 import java.util.Arrays; class Solution { public static int[] solution(String s) { int[] location = new int[s.length()]; int[] alpha = new..
35. Search Insert Position
문제 파악 및 재정의 중복없는 정수로 이루어진 정렬된 배열과 목표 값이 주어진다. 목표를 찾으면 해당 index를 반환 목표 없다면 들어갈 적합한 자리의 index를 반환하라 자료구조 및 알고리즘 선택 배열 순회 / 그리디? 구현 class Solution { public int searchInsert(int[] nums, int target) { int ret = nums.length; for(int idx = 0; idx < nums.length; idx++) { if(target
Coding Test Meeting #2
엄청 오랜만에 격주 세미나를 참가했다. 우지당만 프로젝트에 대한 피드백을 받았는데 RDB와 No DB의 차이와 검색 비용을 최적화 하기 위한 방안 같은 말씀을 하셨다. 데이터 베이스 indexing 최적화 where절에 자주 사용할 column을 indexing처리 할 것 FullTextSearch는 indexing처리가 어려우니 flag를 통해서 보다 비용절감이 가능 KeyWords flag / switch / 밀리지? / mygration이 잦은 상황에서는 noSQL 고려 (DB 구조를 자주 변경 할 시) goLang에서 대문자 [접근가능] public 느낌 소문자[접근불가] private 느낌 알고리즘 문제 2023.02.25 - [Algorithm/LeetCode] - task-scheduler-..
242. Valid Anagram
문제 파악 및 재정의 유효한 아나그램 s와 t 두가지 문자열이 주어지고 t가 s에 대해 아나그램을 충족하면 true 아니라면 false를 반환한다. 애너그램은 일반적으로 모든 원래 문자를 정확히 한 번만 사용하여 다른 단어나 구의 문자를 재배열하여 형성된 단어 또는 구입니다. 자료구조 및 알고리즘 설계 String to char[] 1 ~ 5 * 10^4 sorting 후 비교 구현 class Solution { public boolean isAnagram(String s, String t) { char[] sArr = s.toCharArray(); char[] tArr = t.toCharArray(); Arrays.sort(sArr); Arrays.sort(tArr); return Arrays.equa..