본문 바로가기

알고리즘/그리디

[python] algospot MINASTRITH 문제 풀이 문제 최소의 인원으로 성벽의 모든 부분을 감시하기 위해, 일부 초소에만 병사를 배치하려고 합니다. 각 초소의 위치와 감시 범위가 주어질 때, 성벽의 모든 부분을 감시하기 위해 필요한 최소한의 병사 수를 계산하는 프로그램을 작성하세요. 문제를 간단하게 하기 위해 성벽은 두께가 없는 원이고 초소는 점이라고 가정합니다 -> 문제 링크 : https://www.algospot.com/judge/problem/read/MINASTIRITH algospot.com :: MINASTIRITH 미나스 아노르 문제 정보 문제 단 한 번도 함락된 적이 없다는 성채도시 미나스 아노르에는 반지름이 8 킬로미터나 되는 거대한 원형 성벽, 람마스 에코르가 있습니다. 도시 전체를 감싸는 이 거 www.algospot.com 문제풀.. 더보기
[python] algospot STRJOIN 문제풀이 문제 void strcat(char* dest, const char* src) { // dest 의 마지막 위치를 찾는다 while(*dest) ++dest; // src 를 한 글자씩 dest 에 옮겨 붙인다 while(*src) *(dest++) = *(src++); // 문자열의 끝을 알리는 \0 을 추가한다 *dest = 0; } 위의 strcat 함수를 이용해 n 개의 문자열을 순서와 상관없이 합쳐서 한 개의 문자열로 만들고 싶습니다. 순서가 상관 없다는 말은 {al,go,spot} 을 spotalgo 로 합치든 alspotgo 로 합치든 상관 없다는 의미입니다. 그러나 문자열을 합치는 순서에 따라 전체 비용이 달라질 수 있습니다. 예를 들어 먼저 al 과 go 를 합치고 (2+2=4), 이것을.. 더보기
[python] algospot MatchOrder 문제풀이 문제 전세계 최대의 프로그래밍 대회 알고스팟 컵의 결승전이 이틀 앞으로 다가왔습니다. 각 팀은 n명씩의 프로 코더들로 구성되어 있으며, 결승전에서는 각 선수가 한 번씩 출전해 1:1 경기를 벌여 더 많은 승리를 가져가는 팀이 최종적으로 우승하게 됩니다. 이 대회에서는 각 선수의 실력을 레이팅(rating)으로 표현합니다. 문제를 간단히 하기 위해 1:1 승부에서는 항상 레이팅이 더 높은 선수가 승리하고, 레이팅이 같을 경우 우리 선수가 승리한다고 가정합시다. 상대 팀의 출전 순서를 알고 있을 때 , 어느 순서대로 선수들을 내보내야 승수를 최대화할 수 있을까요? 문제풀이 상대방과의 경기에서 이길 때, 상대 레이팅보다 높은 팀원 중에서 레이팅에서는 가장 작은 사람이 출전해서 이길 때 최선이다. 즉, 항상 우.. 더보기
[python] algospot Lunchbox 문제풀이 문제 -> 문제 링크 : https://www.algospot.com/judge/problem/read/LUNCHBOX algospot.com :: LUNCHBOX Microwaving Lunch Boxes 문제 정보 문제 After suffering from the deficit in summer camp, Ainu7 decided to supply lunch boxes instead of eating outside for Algospot.com winter camp. He contacted the famous packed lunch company "Doosot" to prepare N lun www.algospot.com 문제풀이 이 문제에서 전자레인지로 도시락을 데우는 데 걸리는 시간은 정해져있다... 더보기