알고리즘
-
Python 백준 10610번 - 30 (시간 초과 해결)백준문제정리 2021. 2. 4. 17:00
문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어 한다. 미르코를 도와 그가 만들고 싶어 하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 10^5개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라. 나의 생각 이 문제를 보고 몇 가지 조건들이 떠올랐다. 1. 30, 150, 180.. 이렇게 끝자리가 0으로 반드시 끝나야 한다는 것 2. 입력한 값의 자리 수보다는 배수가 될(출력) 것의 길이가 크거나 같아야 한다는 것 ..
-
백준(Baekjoon)알고리즘 <문제번호 1011> - Fly me to the Alpha Centauri백준문제정리 2020. 4. 16. 17:40
문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 ..
-
백준(Baekjoon)알고리즘 <문제번호 1008> - A/B백준문제정리 2020. 4. 7. 17:13
문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 풀이 A 와 B를 나누어서 소수점으로 수를 나타내기 위해서 double 형으로 데이터 타입을 받았다. 또한 소숫점 9번째 자리까지 나타내기 위해서 .9lf를 사용하였다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include using namespace std; int main(void) { double A, B; double result; while (true) { cin >> A >> B; if (A 10 || B 10) { continue; } printf("%.9lf\n", A / B); break; } return 0; } Colored by Co..
-
백준(Baekjoon)알고리즘 <문제번호 1009> - 분산처리백준문제정리 2020. 4. 7. 16:59
문제 재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다. 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... , 10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ... 총 데이터의 개수는 항상 a^b개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라. 출력 각 테스트 케이스에 대해 마지막 데이터가 처리되는 컴퓨터의 번호를 출력한다 풀이 이 문제는 보기에는 단순해 보인다. 그냥 p..
-
백준(Baekjoon)알고리즘 <문제번호 1003> - 피보나치백준문제정리 2020. 4. 5. 20:11
문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은 ..
-
백준(Baekjoon)알고리즘 <문제번호 1002>백준문제정리 2020. 3. 22. 13:27
문제 A과 B은 터렛에 근무하는 직원이다. A와 B의 위치로부터 임의의 C의 위치를 파악하는 문제. A와 B의 좌표가 주어지고 각각 탐지할 수 있는 거리 r1, r2가 주어질 때, C가 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 이루어져 있다. 한 줄에 x1, y1, r1, x2, y2, r2가 주어진다. x1, y1, x2, y2는 -10,000보다 크거나 같고, 10,000보다 작거나 같은 정수이고, r1, r2는 10,000보다 작거나 같은 자연수이다. 출력 각 테스트 케이스마다 C가 있을 수 있는 위치의 수를 출력한다. 만약 C가 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. 문..