본문 바로가기

알고리즘 문제 풀이207

Minimum Subsequence in Non-Increasing Order 배열에서 숫자를 뽑아서 리스트를 만들었을 때 뽑은 숫자는 배열에서 사라진다. 리스트의 총합이 배열의 총합보다 커지는 경우를 구하시오. 단, 답이 여러개면 최소 값을 구하시오. 답지 보기 전에 푼 거. import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Solution { public List minSubsequence(int[] nums) { //주어진 배열 int[] array = nums; //배열의 원소들을 크기 순서대로 정렬 Arrays.sort(array); //배열의 총합을 arraySum의 대입 int arraySum = Arrays.stream(array).sum(); //숫자를 뽑아서 저장할 리.. 2021. 4. 8.
Number Of Rectangles That Can Form The Largest Square 문제 링크 주어진 사각형을 자를 수만 있을 때 최대 넓이인 정사각형의 갯수를 구하라. 접근법 : 사각형의 길이를 늘릴 순 없고 자를 수만 있으므로 최소 길이인 변의 길이로 자른 게 해당 사각형의 최대 넓이임. 즉, 사각형이 있으면 최소 변의 길이를 구합니다. 그 변의 길이가 사각형 중에서 제일 큰 사각형이 우리가 구하고자하는 사각형입니다. 해당하는 정사각형과 넓이가 같은 사각형의 갯수를 구합니다. 내가 푼 방법 class Solution { public int countGoodRectangles(int[][] rectangles) { int answer = 0; //최대 넓이를 가진 도형의 갯수. int max = 0; //최대 넓이 도형 길이. for (int i = 0; i < rectangles.l.. 2021. 4. 6.
Split a String in Balanced Strings 문제 링크 리트코드에서 본 모법답안 public int balancedStringSplit(String s) { int res = 0, cnt = 0; //res는 나눠질 수 있는 갯수, cnt는 L이 있으면 ++, R이면 --. for (int i = 0; i < s.length(); ++i) { cnt += s.charAt(i) == 'L' ? 1 : -1; if (cnt == 0) ++res; //cnt가 0인 경우는 R과 L의 갯수가 같은 경우, 즉 나줘질 수 있을 때 밖에 없음. } return res; } 위 코드의 경우, 갯수를 초기화 할 필요도 없고 변수를 두개나 할 필요도 없음. 답지 보기 전에 푼 거. class Solution { public int balancedStringSplit.. 2021. 4. 6.