0️⃣ Algorithm&자료구조/Programmers(2)
-
[Programmers] 구명보트 - Python
1. 문제 설명 2. 제한 조건 & 입출력 예 3. 시행착오 뭔가 정렬을 하면 안 될 것 같았다. 살짝 뻔하다고 생각해서. 3.1. 첫 번째 접근. Stack에 Limits 뺀 값을 저장하고 대조 for 문을 돌려서 Stack의 수보다 작으면 빼는 식으로 Stack의 요소 수를 늘렸다. 하지만 이 방법은 보트에 2명을 태운다는 조건을 지키지 못했으므로 정답이 아니었다. # Method 1. def solution(people, limit): stack = [100] for one in people: n = 0 for i in range(0, len(stack)): if one 0: if n_list[subs - i] > 0: n_list[subs - i] -= 1 n_list[n] -= 1 count +..
2023.10.07 -
[Programmers] 큰 수 만들기 - Python
1. 문제 설명 2. 제한 조건 & 입출력 예 3. 시행착오 3.1. 첫 번째 접근. 단순 정렬 혹시나 하는 마음으로, 그냥 정렬하고 앞부터 끊었다. 당연히 정답이 아니었다. 3.2. 두번째 접근. i와 i+1의 비교 i번째 수와 i+1번째 수를 비교하고, i+1 번째 수가 더 크면 i번째 수를 제거하는 방식으로 문제를 풀었다. 이 경우, 4177252841, 4 이렇게 주어졌을 때, 정답이 77841이 나왔다. 즉, 무조건 큰 수를 살린다고 결괏값이 커지는 것은 아니란 이야기다. 3.3. 세번째 접근. K를 범위로 하여 Number를 자르고, 그 안에서 최고값 살리기 Step 1과 Step 2로 나누어, 맨 앞자리 숫자를 확정하는 단계가 그 뒤에 숫자들을 정해 가는 단계로 나눠 진행했다. 테스트 10에..
2023.10.05