본문 바로가기

Coding

(195)
14425번 문자열 집합 처음에는 문자열들의 길이를 비교해서 찾으려고 했지만 50%까지 올라가고 시간초과가 발생 -> map을 사용하여 해결.
1015번 수열 정렬 문제를 이해 못해서 헤맨 문제. 주어진 예시를 가지고 B[P[i]=A[i] 에 맞춰 생각해보자. B[P[0]] = A[0] = 2 B[P[1]] = A[1] = 3 B[P[2]] = A[2] = 1 1. A[i]를 정렬하면 B[P[2]] = 1 B[P[0]] = 2 B[P[1]] = 3 2. B[i]의 인덱스를 정해주면 B[0]-> P[2] B[1]-> P[0] B[2]-> P[1] 3. P의 인덱스를 정렬해주면 P[0]
10814번 나이순 정렬 간단한 정렬 문제. 구조체와 병합정렬(머지 소트)를 사용하여 풀었다. ps. sort함수나 stable_sort를 사용해서 풀면 간단하지만 병합정렬 연습할겸 구현해보았다.
1377번 버블 소트 문제에 있는 코드를 작성한 결과 시간 초과가 떴다. (버블 소트의 시간복잡도가 O(n^2)이기 때문에) 즉, 이 문제는 버블소트를 그대로 사용하여 구하는것이 아니라 구현된 버블소트에서 구하고자 하는 i값의 의미를 찾는것이다. -> i값의 의미는 숫자가 몇 번 움직였는지 확인하는것이다. 버블소트가 1번 진행됐을 때 숫자는 좌측을 기준으로 1번밖에 움직일 수 없다. 이를 기준으로 정렬되기 전 인덱스와 정렬된 후 인덱스를 비교하여 최대값을 구해 +1을 하면 된다.
14501번 퇴사 어떻게 풀다보니 풀린 문제(DP 문제). 1. 상담을 하고 넘어간다면 -> DP(day+T[day])+P[day] 2. 상담을 하지 않는다면 -> DP(day+1) 위의 두 가지 경우를 조건에 맞춰서 실행시켜주면 된다.
11399번 ATM 그리디 문제. 그리디 문제를 이렇게 푸는게 맞는지 모르겠지만 일단 낮은숫자부터 큰숫자로, 즉 정렬해서 풀면 최소값이 될 것이라고 생각하여 풀었더니 맞았다.
11053번 가장 긴 증가하는 부분 수열 처음에 등차수열 찾는 문제로 착각해서 풀다가 질문란을 보고 그냥 증가하기만 하면 되는것을 알았다.
4358번 생태학 원래 Trie 공부하기 위해 풀려던 문제였지만 map으로 풀면 간단할 것 같아서 map으로 해결하였다.