no image
[알고리즘 일기] 29. 삼각화단 만들기 (Small)
삼각화단 만들기 (Small) 주어진 화단 둘레의 길이를 이용하여 삼각형 모양의 화단을 만들려고 한다. 이 때 만들어진 삼각형 화단 둘레의 길이는 반드시 주어진 화단 둘레의 길이와 같아야 한다. 또한, 화단 둘레의 길이 codeup.kr 2625(Codeup). 삼각화단 만들기 (Small) 주어진 화단 둘레의 길이를 이용하여 삼각형 모양의 화단을 만들려고 한다. 이 때 만들어진 삼각형 화단 둘레의 길이는 반드시 주어진 화단 둘레의 길이와 같아야 한다. 또한, 화단 둘레의 길이와 각 변의 길이는 자연수이다. 예를 들어, 만들고자 하는 화단 둘레의 길이가 9m라고 하면 한 변의 길이가 1m, 두 변의 길이가 4m인 화단, 한 변의 길이가 2m, 다른 변의 길이가 3m, 나머지 변의 길이가 4m인 화단, 세..
2021.05.29
no image
[알고리즘 일기] 28. 먹을 것인가 먹힐 것인가
7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net 7795(Baekjoon). 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 수 있는 쌍의 개수는 7가지가 있다. 8-3, 8-6, 8-1, 7-3, 7-6, 7-1, 3-1. 두 생명체 A와 B의 크기가..
2021.05.28
no image
[알고리즘 일기] 27. 디지털 도어락
2650(Codeup) : 디지털 도어락 XX사에서 만든 디지털 도어락은 내부적으로 보안키 값을 가지고 있고, 이 값은 1,000이하의 자연수로 이루어져 있다. 각 카드키들은 ID값을 가지고 있는데, 이 값이 도어락의 내부 보안키 값의 약수이면 이 도어락을 열 수 있다. 길동이는 △△사에서 근무하고, △△사는 XX사에서 만든 디지털 도어락을 쓴다. 길동이가 자신의 사무실로 가기 위해서는 3개의 문을 통과해야 한다. 길동이는 자신이 통과해야하는 3개의 문의 내부 보안키 값을 알고 있을 때, 이 3개의 문을 모두 열 수 있는 만능 보안키를 여러분에게 의뢰했다. 길동이를 도와주자. 단, 보안키의 ID값이 클수록 제작비용이 적다. 최소한의 비용을 마스터 보안키를 만드는 프로그램을 작성하시오. 입력 세 자연수가 ..
2021.05.27
no image
[알고리즘 일기] 26. 최소 대금
최소 대금 입력은 5 행으로 이루어지며, 한 줄에 하나씩 양의 정수가 적혀있다. 1행의 정수는 첫 번째 파스타 가격이다. 2행의 정수는 두 번째 파스타 가격이다. 3행의 정수는 세 번째 파스타 가격이다. 4행 codeup.kr 2001(CodeUp) : 최소대금 열정이 불타오르는 신입생 지웅이는 최대한 많은 수업을 들을 수 있는 수업 조합으로 수강 신청을 하려고 합니다. 파파 파스타 가게는 점심 추천 파스타와 생과일 쥬스 세트 메뉴가 인기가 좋다. 이 세트 메뉴를 주문하면 그 날의 3 종류의 파스타와 2 종류의 생과일 쥬스에서 하나씩 선택한다. 파스타와 생과일 쥬스의 가격 합계에서 10%를 더한 금액이 대금된다. 어느 날의 파스타와 생과일 쥬스의 가격이 주어 졌을 때, 그 날 세트 메뉴의 대금의 최소값을..
2021.05.26
no image
[알고리즘 일기] 25. 수강 신청 분석
수강 신청 분석 이번 학기 ♣♧대학교의 수업 리스트가 나왔습니다. [(4, 7), (2, 5), (1, 3), (8, 10), (5, 9), (2, 6), (13, 16), (9, 11), (1, 8)] 리스트에 담겨있는 튜플들은 각각 하나의 수업을 나타냅니다. 각 튜플의 0번째 항목은 해당 수업의 시작 교시, 그리고 1 번 항목은 해당 수업이 끝나는 교시입니다. 예를 들어서 0번 인덱스에 있는 튜플값은 (4, 7)이니까, 해당 수업은 4교시에 시작해서 7교시에 끝납니다. (2, 5)를 듣는다고 가정합니다. (4, 7) 수업은 (2, 5)가 끝나기 전에 시작하기 때문에, 두 수업은 같이 들을 수 없습니다. 반면, 수업 (1, 3)과 (4, 7)은 시간이 겹치지 않기 때문에 동시에 들을 수 있습니다. (단..
2021.05.26
no image
[알고리즘 일기] 24. 지각 벌금 적게 내기
지각 벌금 적게 내기 익중이네 밴드부는 매주 수요일 오후 6시에 합주를 하는데요. 멤버들이 너무 상습적으로 늦어서, 1분에 1달러씩 내야 하는 벌금 제도를 도입했습니다. 그런데 마침 익중이와 친구 넷이 놀다가 또 지각할 위기입니다. 아직 악보도 출력해 놓지 않은 상황입니다. 어차피 같이 놀다 늦은 것이니 벌금을 다섯 명이서 똑같이 나눠 내기로 하고, 벌금을 가능한 적게 내는 방법을 고민해 보기로 합니다. 다섯 사람이 각각 출력해야 하는 페이지 수는 3장, 1장, 4장, 3장, 2장입니다. 프린터는 한 대밖에 없고, 1장을 출력하기 위해서는 1분이 걸립니다. 현재 순서대로 출력한다면, 첫 번째 사람: 33분 지각 두 번째 사람: 3 + 13+1분 지각 세 번째 사람: 3 + 1 + 43+1+4분 지각 네 ..
2021.05.26
no image
[알고리즘 일기] 23. 최대 곱 구하기
최대 곱 구하기 여럿이서 카드 게임을 하고 있는데, 각 플레이어는 3장의 카드를 들고 있습니다. 위의 경우 첫 번째 플레이어는 1, 2, 3을 들고 있고, 두 번째 플레이어는 4, 6, 1을 들고 있고, 세 번째 플레이어는 8, 2, 4를 들고 있습니다. 주의사항 * 함수 max_product는 한 사람당 카드를 하나씩 뽑아서 모두 곱했을 때 가능한 최대 곱을 리턴합니다. ❧ 테스트 셋 def max_product(card_lists): #Code #Test test_cards1 = [[1, 6, 5], [4, 2, 3]] print(max_product(test_cards1)) test_cards2 = [[9, 7, 8], [9, 2, 3], [9, 8, 1], [2, 8, 3], [1, 3, 6], ..
2021.05.23
no image
[알고리즘 일기] 22. 최소 동전으로 거슬러주기
최소 동전으로 거슬러 주기 최소 동전으로 돈을 거슬러 주는 함수를 Greedy Algorithm으로 구현하시오. 주의사항 * 함수 min_coin_count는 거슬러 줘야 하는 총액 value와 동전 리스트 coin_list를 파라미터로 받고, 거슬러 주기 위해 필요한 최소 동전 개수를 리턴합니다. * 동전의 조합은 항상 500원, 100원, 50원, 10원이라고 가정합니다. ❧ 테스트 셋 def min_coin_count(value, coin_list): #Code #Test default_coin_list = [100, 500, 10, 50] print(min_coin_count(1440, default_coin_list)) print(min_coin_count(1700, default_coin_li..
2021.05.22
no image
[알고리즘 일기] 21. 최대 수익(Tabulation)
합병 정렬 구현하기 솔희는 학원 쉬는 시간에 친구들을 상대로 새꼼달꼼 장사를 합니다. 그러다 문득, 갖고 있는 새꼼달꼼으로 벌어들일 수 있는 최대 수익이 궁금해졌습니다. 가능한 최대 수익을 리턴시켜 주는 함수 max_profit을 Tabulation 방식으로 작성해 보세요. max_profit은 파라미터 두 개를 받습니다. - price_list: 개수별 가격이 정리되어 있는 리스트 - count: 판매할 새꼼달꼼 개수 ❧ 테스트 셋 def max_profit(price_list, count): # Code # Test print(max_profit([0, 200, 600, 900, 1200, 2000], 5)) print(max_profit([0, 300, 600, 700, 1100, 1400], 8)..
2021.05.22