코딩테스트
-
11/04 코딩테스트 프로그래머스 다리를 지나는 트럭코딩테스트 2021. 11. 4. 16:27
https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr def solution(bridge_length, weight, truck_weights): time = 0 bridge = [] currentWeight = 0 while True: for x in bridge: x[1] += 1 for x in bridge: if x[1] > bridge_length: tmp = bridge.pop..
-
11/04 코딩테스트 프로그래머스 프린터코딩테스트 2021. 11. 4. 12:56
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr def solution(priorities, location): answer = 0 a = 65 l = [] my = "" for i in range(len(priorities)): l.append((priorities[i], chr(a))) if(i == location): my = chr(a) a += 1 while len(l) > 0: b = False for..
-
11/04 코딩테스트 프로그래머스 기능개발코딩테스트 2021. 11. 4. 11:41
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr def solution(progresses, speeds): answer = [] counter = 0 count = 0 b = False while counter < len(speeds): for i in range(len(speeds)): progresses[i] += speeds[i] for i in range(counter, len(speeds))..
-
10/29 코딩테스트 프로그래머스 위장코딩테스트 2021. 10. 29. 19:37
https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr import collections import math def solution(clothes): tmp = [] for x in clothes: tmp.append(x[1]) counter = collections.Counter(tmp) val = list(dict(counter).values()) answer = 1 for x in val: answer *= x + 1 return answer - 1 같은 종류의 옷 개수 + 1를 하여 각 옷 종류의 개수를 곱하는 것이 포인트 같은 종류의 옷 개수 + 1를 하는 것은 입지 않는 상태를 추가 하기 ..
-
10/28 코딩테스트 프로그래머스 전화번호 목록코딩테스트 2021. 10. 28. 17:03
https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr def solution(phone_book): phone_book.sort() for i in range(0, len(phone_book)-1): if(phone_book[i] == phone_book[i+1][:len(phone_book[i])]): return False return True 효율성 테스트 3, 4에서 계속 떨어지다가 질문하기에서 정렬을 ..
-
09/03 코딩테스트 백준 10162 전자레인지 Python코딩테스트 2021. 9. 3. 17:18
https://www.acmicpc.net/problem/10162 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net import math t = int(input()) button = [300, 60, 10] usedButton = [] for b in button: tmp = math.trunc(t / b) t -= b * tmp usedButton.append(str(tmp)) if(t == 0): print(' '.join(usedButton)) else: print(-1)
-
09/03 코딩테스트 백준 2217 로프코딩테스트 2021. 9. 3. 16:57
https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net count = int(input()) rope = [] for i in range(count): rope.append(int(input())) rope.sort(reverse=True) weight = 0 for i in range(count): tmp = rope[i] * (i + 1) if(tmp > weight): weight = tmp print(weight) 문제 풀이 방법을 모..
-
08/19 코딩테스트 백준 5585 거스름돈코딩테스트 2021. 8. 19. 19:48
https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net import math money = int(input()) tmp = 1000 - money arr = [500, 100, 50, 10, 5, 1] count = 0 for x in range(len(arr)): y = math.trunc(tmp / arr[x]) tmp -= arr[x] * y count += y print(count)