전체 글

·TIL 📔
문제 1️⃣ (🔗 리트 코드 _ 최대도 최소도 아닌 값 찾기)💡 IDEA : 배열 안 모든 값이 distinct 하다는 성질을 이용한다. 배열의 길이가 2 이하면 바로 -1 을 반환하고, 이 외의 경우 Arrays.sort 를 통해 배열을 정렬한 후 해당 배열의 인덱스 1 값을 반환한다.import java.util.Arrays;class Solution { public int findNonMinOrMax(int[] nums) { if (nums.length 문제 2️⃣ (🔗 리트코드 _ Top 빈도수 k 개 구하기)💡 IDEA : Num 클래스를 생성하여 Array.sort 를 통해 정렬된 nums 배열을 한번 돌면서 배열 속 숫자의 개수를 계산한다. 이때 동시에 Priorit..
·TIL 📔
문제 1️⃣ (🔗 리트 코드 _ 특정 문자를 포함한 문자열 찾기)💡 IDEA : String 내부 함수인 indexOf 매서드르 통해 인덱스를 확인하고, -1 인 경우 해당 문자를 포함하지 않는 것으로 판단하여 나머지만 인덱스값을 정답 배열에 추가한다.import java.util.List;import java.util.ArrayList;class Solution { public List findWordsContaining(String[] words, char x) { List answer = new ArrayList(); for (int i=0; i= 0) { answer.add(i); } } re..
·TIL 📔
문제 1️⃣ (🔗 리트 코드 _ 좋은 짝의 수)💡 IDEA : 배열 안의 각수의 개수를 HashMap 에 저장한 후 전체를 돌면서 조합의 수를 더한다. 이 때 조합은 n * (n-1) / 2 로 계산 가능하다.import java.util.Arrays;import java.util.HashMap;import java.util.Set;class Solution { public int numIdenticalPairs(int[] nums) { // (1) 배열 속 전체 값 세기 HashMap cnt = new HashMap(); int val = 0; for (int num : nums) { if (cnt.get(num) == nu..
·TIL 📔
문제 1️⃣ (🔗 리트 코드 _ 배열 섞기)💡 IDEA : 두 배열을 정렬한 뒤 x 값들은 2*n 인덱스에 y 값들은 2*n+1 인덱스에 넣어 새로운 배열을 생성한다.class Solution { public int[] shuffle(int[] nums, int n) { int[] answer = new int[nums.length]; for (int i=0; i 0, 2, 4, 6 -> 2ny -> 1, 3, 5, 7 -> 2n + 1;*/문제 2️⃣ (🔗 리트 코드 _ 직사각형 쿼리들)💡 IDEA : 크게 아이디어라 할 것 없이 주어진 조건대로 작성하였다.class SubrectangleQueries { int[][] rectan..
·TIL 📔
문제 1️⃣ (🔗 리트 코드 _ 학생 최소 이동값)💡 IDEA : 단순하게 두 배열을 정렬해서 두 값 사이의 절대값을 이동 횟수로 하여 전체를 더한다.import java.util.Arrays;class Solution { public int minMovesToSeat(int[] seats, int[] students) { // 두 배열 정렬 Arrays.sort(seats); Arrays.sort(students); int answer = 0; for (int i=0; i 문제 2️⃣ (🔗 프로그래머스 _ 순위)➡️ 이전에 정리해놓은 블로그 글이 있어서 해당 링크로 대체한다. (알고리즘 스터디) 15주차 금_Graph📈_(Pro..
·TIL 📔
문제 1️⃣ (🔗 리트 코드 _ 정렬된 이차원 배열에서 음수찾기)💡 IDEA : 정렬되어있는 배열이므로 이분탐색을 통해 탐색 속도를 높인다. 이때, 위아래에 대해서도 정렬이 되어있음으로 다음 배열 탐색시 전 배열 탐색 결과를 바탕으로 범위를 좁혀서 탐색할 수 있다.class Solution { public int countNegatives(int[][] grid) { int answer = 0; int m = grid.length; // 세로 길이 int n = grid[0].length; // 가로 길이 int left = 0; int right = n-1; int idx = n; int mid = 0; ..
Doit_Young
Young