GreatAlgorithm-Study / AlgorithmStudy

🌟알고리즘 대장정🌟
6 stars 4 forks source link

[4주차_수요일] 7570_줄세우기 #39

Closed yeahdy closed 1 month ago

yeahdy commented 1 month ago
baexxbin commented 1 month ago

🤔 시간복잡도 고려사항


💡 풀이 아이디어

icegosimperson commented 1 month ago

🤔 시간복잡도 고려사항 시간복잡도 : O(N) N <= 10^6 -> O(N^2) 불가

💡 풀이 아이디어 어린이들 최소한 이동 후 오름차순 정렬 -> LIS(최장 증가 부분 수열) 이동해야하는 어린이 수 = 전체 어린이 수 - LIS

cnt : 연속된 증가 수열 길이

        // 연속된 증가 수열의 길이 계산
        for (int i = 1; i <= N; i++) {
            if (arr[i] > arr[i - 1]) {  // 현재 위치의 값이 이전 위치의 값보다 크다면 (=연속된 수열)
                cnt++;  // 연속된 수열의 길이 증가
                LIS = Math.max(LIS, cnt);  // 최장 길이 LIS 갱신
            } else { // 연속되지 않으면
                cnt = 1;  // 길이 1로 초기화
            }
        }
Jewan1120 commented 1 month ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

KodaHye commented 1 month ago

🤔 시간복잡도 고려사항


💡 풀이 아이디어

나중에 보니 dp[num] = dp[num - 1] != 0 ? dp[num - 1] + 1: 1;dp[num] = dp[num - 1]가 똑같은 식인데, 제가 필요없는 연산을 했다는 것을 알았습니다 ㅜ

yeongleej commented 1 month ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

처음에는 저번주에 풀었던 줄세우기(BOJ_2631)와 같은 문제라고 생각했지만, 이 문제는 단순히 증가하는 부분 수열이 아니라 연속으로 증가하는 최장 부분 수열의 길이를 구해야 하는 문제임을 꺠달았습니다,,,,, ㅎㅎㅎ DP도 더 연습해야할 것 같습니다~ ㅜㅜㅜㅜ

yeahdy commented 1 month ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

dp 점화식을 세우는 부분이 이해가 안가서 점화식 사용안한 블로그 참고했어요💦💦💦💦

연속되는 최장증가수열을 찾는이유? 일반적인 최장증가수열의 경우 요소들이 사이에 들어올 수 있는데, 연속되는 최장증가수열의 경우 해당 길이만큼 연속되게 있기 때문에 중간에 요소들이 들어올 수 없음! 따라서 요소들이 맨앞 맨뒤 위치로만 이동하는 것