-
[CodeTree/Python] 최대 이익 구하기 2Solve 2024. 6. 30. 18:54
문제더보기최대 이익 구하기 2n일 동안 하루에 하나씩 일을 지급받습니다. 일은 하는데 걸리는 날짜 수 Ti와, 받는 보수 Pi가 정해져 있습니다.여러 개의 일은 동시에 할 수 없고, 모든 일은 n일 안에 마무리되어야 합니다.예를 들어서, n=5 일 때 다음의 상황을 생각해봅시다.이런 경우, 1일에 일을 하게 되면 1일~3일에 걸쳐서 일하게 되며, 100의 보수를 지급받습니다. 그렇기 때문에, 1일에 일하기로 하면 2일 또는 3일에 할당된 일은 할 수 없습니다.또, 4일에는 일을 할 수 없는데, 이는 4일에 시작한 일은 n일 안에 마무리되지 않기 때문입니다.따라서 위의 예시에서 가장 많은 이익을 얻기 위해서는, 1일과 5일에 할당된 일을 해서 120의 이익을 얻어야 합니다.지급받은 일을 하는데 걸리는 ..
-
[CodeTree/Python] 앞의 두 수를 더한 수열, 1, 2, 3 더하기Solve 2024. 6. 30. 18:43
문제더보기앞의 두 수를 더한 수열첫 번째 항이 0이고, 두 번째 항이 1인 수열이 있습니다.이 수열의 세 번째 항부터는 바로 앞의 두 항의 합을 값으로 가집니다.n이 주어졌을 때, 이 수열에서 n + 1 번째 항을 구하는 프로그램을 작성하세요. 입력 형식첫 번째 줄에 정수 n이 주어집니다.1 ≤ n ≤ 20출력 형식첫 번째 줄에 n + 1 번째 항을 출력합니다. 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 풀이n = int(input())li = [0, 1]def func(n): while True: for i in range(len..
-
[CodeTree/Python] 용량이 다른 3개의 물통Solve 2024. 6. 26. 00:50
문제더보기용량이 다른 3개의 물통물을 담을 수 있고 각각 용량이 다른 물통 3개가 있습니다. 각 물통마다 담을 수 있는 최대 용량과 원래 담겨 있던 물의 양이 주어지고, 1번 물통에서 2번 물통으로, 2번 물통에서 3번 물통으로, 3번 물통에서 다시 1번 물통으로 내용물을 옮겨 담는 작업을 100번 진행했을 때, 각 물통에 들어있는 내용물의 양을 구하는 프로그램을 작성해보세요. 입력 형식3개의 줄에 걸쳐 한 줄에 하나씩 각 물통의 용량과 물통에 들어있던 내용물이 공백을 사이에 두고 주어집니다.1 ≤ 물의 용량 ≤ 1,000,000,000출력 형식1 → 2, 2 → 3, 3 → 1 순서로 옮겨담는 작업을 100번 반복한 이후의 결과를 3개의 줄에 걸쳐 출력합니다.첫 번째 줄에는 1번 물통에 남아있는 물의 ..
-
[CodeTree/Python] 개발자의 컴퓨터Solve 2024. 6. 25. 09:10
문제더보기개발자의 컴퓨터N명의 개발자가 시간 s 부터 t 까지 b개의 컴퓨터를 사용하려고 할 때, 모든 개발자가 무리없이 일을 하기 위해 필요한 컴퓨터의 최소 개수를 구하는 프로그램을 작성해보세요. 입력 형식첫 번째 줄에 정수 N이 주어집니다.두 번째 줄부터는 N개의 줄에 걸쳐 각 줄마다 s, t, b가 공백을 사이에 두고 주어집니다. 입력으로 주어지는 모든 s, t 끼리는 서로 값이 다름을 가정해도 좋습니다.1 ≤ N ≤ 1001 ≤ s 1 ≤ b ≤ 10출력 형식첫 번째 줄에 모든 개발자가 성공적으로 일을 끝내기 위해 필요한 최소 컴퓨터의 수를 출력합니다. 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한..
-
[CodeTree/Python] CycleSolve 2024. 6. 25. 09:10
문제더보기Cycle숫자 N과 P가 주어집니다.처음에는 N으로 시작합니다.다음에는 그 숫자에 N을 곱하고 P로 나눈 나머지를 구합니다.이 행동을 반복하면 언젠가는 이미 등장했던 숫자가 등장하게 됩니다.이 때에 반복되는 사이클의 크기를 구하는 프로그램을 작성해보세요. 입력 형식첫번째 줄에 N과 P가 공백을 사이에 두고 주어집니다.1 ≤ N ≤ 1,0002 ≤ P ≤ 97출력 형식첫번째 줄에 반복되는 사이클의 숫자 개수를 출력하세요. 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 풀이n, p = map(int, input().split())li = [n]co..
-
[CodeTree/Python] 화면에 출력Solve 2024. 6. 17. 21:50
문제더보기화면에 출력화면에 문자가 하나 입력되어있습니다. 다음의 연산을 통해 문자를 s개로 만들어 보려고 합니다.화면에 있는 모든 문자를 복사해서 클립보드에 저장합니다.클립보드에 있는 모든 문자를 화면에 붙여넣기합니다.화면에 있는 문자중 하나를 삭제합니다.클립보드의 내용은 항상 덮어씌어 지며, 클립보드의 문자는 삭제할 수 없고, 클립보드의 문자를 화면에 붙여넣으면 문자가 추가가됩니다.클립보드가 비어있으면 2번연산을 실행할 수 없으며, 일부만 복사할 수 없습니다.이러한 연산을 통해 문자를 s개 만드는데 필요한 최소 연산 횟수를 구하는 프로그램을 작성해보세요. 입력 형식첫 번째 줄에 s가 주어집니다.2 ≤ s ≤ 1,000출력 형식문자열을 s개 만들기 위해 필요한 최소 연산 횟수를 출력합니다. 코드트리 | ..
-
[CodeTree/Python] n x m 표 이동 5Solve 2024. 6. 11. 09:51
문제더보기n x m 표 이동 5n x m 표에서 (1,1)부터 (n,m)까지 이동하려 할 때 최소한으로 이동할 때 거쳐간 칸의 수를 구하는 프로그램을 작성해보세요.단, 각 칸에는 0또는 1의 값이 주어져 있고, 1의 값이 주어진 칸 위로만 움질일 수 있습니다. 입력 형식첫 번째 줄에는 n과 m이 주어집니다.두 번째 줄부터 n개의 줄에 걸쳐 0또는 1이 m개씩 공백을 두고 주어집니다. (1, 1)과 (n, m)은 반드시 1로 주어집니다.2 ≤ n, m ≤ 100출력 형식(1, 1)에서 (n, m)까지 최소한의 횟수로 이동할 때 그 횟수를 출력합니다. 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로..
-
[Python] deque 자료구조🎸 2024. 6. 8. 13:21
덱(deque)는 스택(Stack)과 큐(Queue)의 기능을 모두 가지고 있는 자료 구조이다.즉, 양 끝에서 삽입/삭제가 모두 가능한 자료구조로, 스택과 큐보다는 유연하고 링크드리스트보다는 덜 유연한 자료 구조라고 한다.덱(deque)을 활용하기 위해서는, Collection 모듈이 필요하다. BFS를 구현하는 데 유용하게 활용할 수 있겠다.Collections: list, tuple, set, dict 등 내당 컨테이너에 대한 대안을 제공하는 Python Built-In 확장 모듈from collections import duquefrom collections import OrderedDictfrom collections import defaultdictfrom collections import Co..
-
[CodeTree/Python] 연결된 칸 찾기Solve 2024. 6. 8. 13:07
문제더보기연결된 칸 찾기n x n 크기의 표에서 각 칸에 0또는 1의 값이 주어져 있습니다.1이 주어진 칸끼리 변을 공유하고 있다면 그 칸은 연결되어있다고 합니다.연결된 가능한 많은 수의 칸들의 개수를 모두 구하여, 각 개수를 오름차순으로 출력하는 프로그램을 작성해보세요. 입력 형식첫 번째 줄에는 n이 주어집니다,두 번째 줄부터 n개의 줄에 걸쳐 n개의 0또는 1이 공백을 두고 주어집니다.5 ≤ n ≤ 25출력 형식첫 번째 줄에는 연결된 칸들이 모인 집합의 개수를 출력합니다.두 번째 줄 부터 여러 개의 줄에 걸쳐 오름차순으로 각 집합에 속한 칸에 개수를 출력합니다. 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 ..
-
[CodeTree/Python] 정육각형으로 이루어진 배열Solve 2024. 6. 8. 12:55
문제더보기정육각형으로 이루어진 배열정육각형의 형태로 이루어진 n x m 크기의 배열의 각 칸에 0 또는 1의 값이 주어져 있습니다.각 정육면체는 다음과 같이 이어져 있습니다. 색칠된 칸은 1의 값이 주어져 있는 칸입니다.1이 적힌 정육각형 칸들로 이루어진 집합의 겉을 둘러싸는 벽의 길이의 합을 구하는 프로그램을 작성해보세요. 정육각형의 한 변의 길이는 1 입니다.아래 그림에서는 붉은 선으로 표시된 부분이 겉을 둘러싸는 벽의 영역입니다. 입력 형식첫 번째 줄에 정수 n과 m이 주어집니다.두 번째 줄부터 n개의 줄에 걸쳐 m개씩 1 또는 0이 주어집니다.1 ≤ n, m ≤ 100출력 형식1이 적힌 정육각형 칸들로 이루어진 집합의 겉을 둘러싸는 벽의 길이를 모두 더한 값을 출력합니다. 코드트리 | 코딩테스트 ..