Coding

    [Greedy] 런치박스

    문제 출처 https://algospot.com/judge/problem/read/LUNCHBOX 문제 내용 문제 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 lunch boxes for N participants. Due to the massive amount of order, Doosot was not able to prepare the same menu. Instead, the..

    [Greedy] 출전 순서 정하기

    문제 출처 https://algospot.com/judge/problem/read/MATCHORDER 문제 내용 문제 전세계 최대의 프로그래밍 대회 알고스팟 컵의 결승전이 이틀 앞으로 다가왔습니다. 각 팀은 n명씩의 프로 코더들로 구성되어 있으며, 결승전에서는 각 선수가 한 번씩 출전해 1:1 경기를 벌여 더 많은 승리를 가져가는 팀이 최종적으로 우승하게 됩니다. 각 팀의 감독은 대회 전날, 주최측에 각 선수를 출전시킬 순서를 알려 주어야 합니다. 결승전 이틀 전, 한국팀의 유감독은 첩보를 통해 상대 러시아팀의 출전 순서를 알아냈습니다. 이 대회에서는 각 선수의 실력을 레이팅(rating)으로 표현합니다. 문제를 간단히 하기 위해 1:1 승부에서는 항상 레이팅이 더 높은 선수가 승리하고, 레이팅이 같을 ..

    [백준 1541 - 읽어버린 괄호] string을 다양한 형식으로 받아내서 처리하기

    문제 출처 https://www.acmicpc.net/problem/1541 문제 내용 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 길이가 최대 50인 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 출력 첫째 줄에 정답을 출력한다. 접근 무조건 정답을 출력하는 논리는 간단하다. ..

    [백준 1011] Fly me to the Alpha Centauri

    문제 출처 https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 www.acmicpc.net 어떻게 풀어야할까 처음엔 잘 감이 안왔다. 규칙이 있을 듯 한데, 구체적으로 보이지..

    [백준 2193] 이친수

    문제 출처 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되 www.acmicpc.net 어떻게 풀어야할까 먼저 이친수의 특징을 살펴보자 1. 0으로 시작하지 않는다. 2. 1이 연속으로 들어가지 않는다. 특징이 어렵..

    영화감독 숌

    https://www.acmicpc.net/problem/1436 #include #include #include #include using namespace std; // 종말의 수인지 판별해주는 함수 bool isEndWorld(int num) { int seq=0; string num_st = to_string(num); for (int i = 0; i < num_st.length(); i++) { if (num_st[i] == '6') seq++; else seq = 0; if (seq == 3) return true; } return false; } int main () { int N, answer; // N = 몇번째 종말의 수인지, answer = N번째 종말의 수 int count=0, i..

    리모컨

    https://www.acmicpc.net/problem/1107 #include #include #include using namespace std; vector isBroken(10, false); // 고장난 버튼을 알려주는 벡터 // 누를 수 있는 숫자인지 알려주는 함수 int canPush(int num) { int push = 0; while(true) { if (isBroken[num%10] == true) return 0; else { num /= 10; push++; } if (num == 0) return push; } } int main () { int answer=0; // 몇번 버튼을 눌렀는지 저장하는 변수 int N, M, temp; // N = 이동하려는 채널, M = 고장난 ..

    덩치

    https://www.acmicpc.net/problem/7568 #include #include #include using namespace std; int main () { vector kg, cm, rank; int N; cin >> N; // 초기화 kg.reserve(N); cm.reserve(N); rank.assign(N, 1); // 입력을 받는다. for (int i = 0; i > kg[i] >> cm[i]; } // 덩치의 순위를 구한다. // 키와 몸무게가 더 작으면 랭크를 1씩 더한다. // i -> 비교기준, j -> 비교 대상 for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) { // 자기자신과는 ..