본문 바로가기
728x90

IT 이야기/알고리즘 공부29

[Programmers][Python][연습문제] 야근지수 - level3 https://programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr 문제가 개편되어 이제는 효율성도 체크합니다. 아래 코드는 효율성을 체크하기 전 최댓값만 조금씩 빼는 문제 풀이입니다 ※야근 지수가 요소의 제곱을 더하기 때문에 높은 값을 최대한 줄여야 지수가 낮아집니다. def solution(n, works): answer = 0 if sum(works) < n: return answer else: for i i.. 2021. 2. 3.
Backjoon 1094번 막대기 1094번 막대기 입니다. https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 일단 정답 코드입니다. X = int(input()) print(list(bin(X)[2:]).count('1')) 64cm막대기를 반씩 자르고 한쪽만 가져가는 동작을 계속하면 64, 32, 16, 8, 4, 2, 1 의 막대기중 하나를 선택할 수 있습니다. 이 막대를 가지고 Xcm의 막대를 만들 때 막대를 최소로 사용하는 방법을 출력하는 것입니다. 이때 X가 23이.. 2020. 12. 1.
Backjoon 1010번 다리놓기 1010번 다리 놓기 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 정답 코드 문제 설명입니다. 간단한 경우의 수 문제입니다. 이번문제의 풀이법을 찾는데 그렇게 오랜 시간이 걸리지 않습니다. 아래 수식을 이용하면 간단 합니ㅏㄷ. 일단 입력 조건입니다. 첫줄에 테스트 개수를 받고 그 다음부터 테스트 입력을 받습니다. 위에 조건중에 가장 중요한 조건은 왼쪽의 숫자가 오른쪽의 숫자보다 항상 작습니다. 강서쪽의 점의 개수가 강 동쪽의 점의 개수보다 .. 2020. 11. 30.
[Programmers] 섬 연결하기 https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 파이썬을 사용했습니다. 문제를 풀때 가장 중요한 부분이 사이클이 없고 분리된 섬 없이 모든 섬이 연결되는 것입니다. 문제를 푼 방법은 먼저 다리를 연결하는 값을 오름차순으로 정렬한 뒤 한번 연결된 섬을을 미리 정의한 그룹에 넣는 것입니다. 또한 연결하려는 양 끝 섬이 이미 정의한 그룹안에 있다면 다리를 건설 하는 것을 포기합니다. 알고리즘은 Kruskal 알고리즘으로 분류됩니다. https://ko.wikipedia.org/wiki/%ED%81%AC%EB%9F.. 2020. 11. 26.
728x90