본문 바로가기

Algorithm7

프로그래머스 12906번 같은 숫자는 싫어 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12906 풀이 시간복잡도 O(n)의 문제로, 현재 값을 따로 저장하여 비교하거나, stack을 이용하면 간단히 해결 가능한 문제입니다. import java.util.*; public class Solution { public int[] solution(int[] arr) { ArrayList distinctList = new ArrayList(); distinctList.add(arr[0]); for(int i = 1; i < arr.length; ++i) { if(distinctList.get(distinctList.size()-1) != arr[i]) { distinctList.add(ar.. 2022. 8. 22.
프로그래머스 42586번 기능 개발 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42586 풀이 간단한 구현 문제 라고 생각했으나, 뇌가 굳었는지 배포 그룹을 묶는 부분에서 좀 막혔다. 풀이 1. 작업별로 처리일수를 계산한다(이건 쉬움) 2. 처리일수 배열을 순회하면서 앞의 처리일수가 뒤의 처리일수보다 높으면, 함께 배포해야 하므로, count하는 방식으로 계산. import java.util.*; class Solution { public int[] arrayListToArray(ArrayList input) { int[] result = new int[input.size()]; for(int i = 0; i < input.size(); ++i) { result[i] = i.. 2022. 8. 8.
프로그래머스 42579번 베스트앨범 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579 풀이 예전에 푼 문제를 다시 풀었는데, 예전의 풀이(풀이1)가 더 성능이 좋았다. 풀이1 : 장르별로 묶어서 장르 내에서 각각 sorting 후 장르별로 상위2개씩 return 풀이2 : 장르에 대한 총 재생수만 hashmap으로 저장 후, 전체 sorting, 장르별로 상위2개씩 return 풀이1 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; class Solution { class Genre { int sum; ArrayList.. 2022. 7. 31.
프로그래머스 42578번 위장 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42578 풀이 이 문제를 한 마디로 요약하면, 옷 종류별 조합의 갯수를 구하는 것이다.(부위별로 안 입는 경우 포함, 모두 안 입을 수 없음) 풀이 순서는 아래와 같다. 1. HashMap을 이용하여 옷 종류별로 개수 카운트 - O(n) 2. 옷 종류별로 조합의 수를 계산 - O(4) (최악의 경우 옷의 종류는 4종이므로) import java.util.HashMap; class Solution { public int solution(String[][] clothes) { int answer = 1; //옷 종류별 가짓수 HashMap clothesCount = new HashMap(); for.. 2022. 7. 26.