백준 51

99클럽 코테 스터디 18일차 TIL + 그리디

https://www.acmicpc.net/problem/2212import sysinput = sys.stdin.readlinen = int(input())k = int(input())ls = list(map(int, input().split()))ls.sort()dist = []for i in range(n-1): dist.append(ls[i+1] - ls[i])dist.sort()print(sum(dist[:n-k]))코드는 매우 간단해 보이지만 문제를 이해하는데 너무 오래걸렸다......n개의 센서로 최대 k개의 집중국을 만들어야 한다.그림과 같이 최대 2개의 집중국을 만들 수 있고, 그 거리를 최소로 하려면 가장 거리 차이가 많이 나는 3과 6사이를 끊어 집중국을 나누어야 한다.우선 센서..

Algorithm/Problems 2024.11.14

99클럽 코테 스터디 17일차 TIL + 그리디

https://www.acmicpc.net/problem/31926import sysinput = sys.stdin.readlinen = int(input())cnt = 8 # 처음 daldidalgo 만들 때 쓰이는 횟수i = 1while True: if n - 2**i == 0: cnt = cnt + i + 2 break elif n - 2**i 처음 daldidalgo가 만들어 질 때 d/a/l/d/i/dal/g/o 총 8번 즉 8초가 걸린다.n = 2일 때8번 + daldidalgo (복사) + daldida (복사) + n 으로 총 8 + 1 +1 +1n = 3일 때8번 + daldidalgo (복사) + daldidalgo daldida (복사) + n으로 ..

Algorithm/Problems 2024.11.14

99클럽 코테 스터디 16일차 TIL + 그리디

https://www.acmicpc.net/problem/2847import sysinput = sys.stdin.readlinen = int(input())levels = []answer = 0for _ in range(n): levels.append(int(input()))for i in range(n-1,0,-1): #뒤에서부터 난이도 조절 if levels[i] 7이 4가 되어야 한다. > 7-5+1 levels[i-1] = levels[i] - 1print(answer)처음에 문제를 이해하기 어려웠다. 동준이는 레벨을 난이도 순으로 배치했고 어려운 난이도의 점수가 쉬운 난이도의 점수보다 높아야한다. 이때, 최소한으로 변경하는 방법을 구해야한다.그러므로 이전 난이도의 점수..

Algorithm/Problems 2024.11.13

99클럽 코테 스터디 14일차 TIL + 그리디

https://www.acmicpc.net/problem/14916import sysinput = sys.stdin.readlinen = int(input())answer = 0while n > 0: if n % 5 == 0: answer += n // 5 break n -= 2 answer += 1if n 직전에 풀었던 백준 27961번 문제와 비슷하다.이 문제는 n이 5로 나누어 떨어질 때까지 2원짜리 거스름돈을 준다.처음에 if문에 break문을 걸지 않아 while이 끝나지 않았다.if문에 걸렸을 땐 answer만 증가시켜주고 n의 값은 변하지 않기 때문에 break문을 걸어 반복문을 끝내준다.

Algorithm/Problems 2024.11.11