분류 전체보기

·Algorithm
LIS이란 ❓LIS(Longest Increasing Subsequence, 가장 긴 증가하는 부분 수열)는 주어진 수열에서 가장 긴 증가하는 부분 수열을 찾는 문제입니다. 여기서 부분 수열이란, 원래의 수열에서 원소들의 순서를 유지하면서 일부 원소들을 선택한 새로운 수열을 말합니다. 증가하는 수열이란, 선택된 원소들이 항상 오름차순으로 배치되는 수열을 의미합니다.LIS 예시주어진 수열이 [10, 20, 10, 30, 20, 50]일 때, LIS는 [10, 20, 30, 50]입니다. 이 부분 수열은 주어진 수열의 원소들 중에서 가장 긴 증가하는 부분 수열로, 원래 수열의 순서를 유지하면서 오름차순으로 나열된 부분 수열입니다. LIS의 특징1. 부분 수열원래 수열에서 일부 원소들을 선택하여 만든 새로운 ..
·Coding Test/백준
문제설명입력 & 출력나의 풀이문제 접근 방법"백준 - 가장 긴 증가하는 부분 수열"문제가 처음에는 쉽게 이해가 되지 않았지만 알고보면 크게 어렵지 않은 문제입니다. 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하는 문제입니다. 문제에서 나와있듯이 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4입니다. 가장 긴 증가하는 부분 수열이라는 말은 주어진 수열에서 순서대로 (즉, 원래 수열의 순서를 유지하면서) 증가하는 수들 중에서 가장 긴 부분 수열을 찾는 문제입니다.  이때 "가장 긴"은 부분 수열의 길이를 의미하며, 반드시 연속된 원소일 필요는 없습니다. 즉, 예..
·TIL,일일 회고
Integer.compare 톺아보기기본적으로 Arrays.sort()는 오름차순으로 정렬됩니다. 그리고 양수가 반환되면, 비교된 두 값의 순서가 뒤로 간다는 의미입니다. Arrays.sort()의 기본 동작Arrays.sort()는 기본적으로 오름차순으로 정렬됩니다.두 값을 비교할 때, compare() 메서드가 음수, 0, 양수를 반환하는 방식에 따라 순서를 결정합니다.Integer.compare(a, b)의 반환 값음수(a a는 b보다 앞에 오도록 정렬됩니다.0(a == b)이 반환a와 b의 순서는 변경되지 않습니다.양수(a > b)가 반환a는 b보다 뒤에 오도록 정렬됩니다.따라서, 양수가 반환되면 a가 b보다 뒤로 가는 것이고, 기본적으로 오름차순 정렬이기 때문에, 큰 값은 뒤로 가게 됩니다.핵..
·TIL,일일 회고
개요자바에서 정렬을 구현할 때 흔히 두 가지 방법을 사용합니다.뺄셈(-) 연산자를 사용하는 방법Integer.compare()를 사용하는 방법본 글에서는 각각의 장단점과 주의해야 할 점을 살펴보겠습니다. 뺄셈(-) 연산자 사용// 뺄셈을 사용한 정렬Arrays.sort(arr, (a, b) -> a - b);// 다중 조건 정렬의 경우Arrays.sort(arr, (a, b) -> { if (a[0] == b[0]) { return a[1] - b[1]; } return a[0] - b[0];});장점코드가 간결함직관적으로 이해하기 쉬움작은 수의 범위에서는 문제없이 작동단점정수 오버플로우 위험이 있음큰 수를 다룰 때 예상치 못한 결과가 발생할 수 있음Integer.compar..
지누박
'분류 전체보기' 카테고리의 글 목록 (30 Page)