[ BOJ ] 4504 : 배수 찾기 ( BRONZE 3 ) / C, Python
·
-- 예전 기록/BOJ
문제 정수 n(0 < n < 1000)과 수의 목록이 주어졌을 때, 목록에 들어있는 수가 n의 배수인지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. 다음 줄부터 한 줄에 한 개씩 목록에 들어있는 수가 주어진다. 이 수는 0보다 크고, 10,000보다 작다. 목록은 0으로 끝난다. 출력 목록에 있는 수가 n의 배수인지 아닌지를 구한 뒤 예제 출력처럼 출력한다. 풀이 과정 먼저 n 을 입력 받고, 0이 입력될 때 까지 목록을 계속 입력받으면서 n의 배수인지 아닌지를 출력한다. n의 배수인지 아닌지를 확인하기 위해선 n으로 나누었을 때 나누어 떨어진다면 n의 배수임을 확인할 수 있다. C #include int main(void) { int n; scanf("%d", &n); int..
[ BOJ ] 21964 : 선린인터넷고등학교 교가 ( BRONZE 3 ) / C, Python
·
-- 예전 기록/BOJ
문제 드높은 남산 위에 우뚝 선 송백은 흰 눈빛에 푸르고 옛부터 흘러가는 한가람 장 할 손 우리 학원 이룩한 굳세고 다함 없는 거룩한 뜻이 백이십년 빛난 역사 자랑이로세 비바람 몰아쳐도 나가자 공들여 쌓은 탑은 빛난다 울려라 삼천리에 힘차게 세워라 반석 위에 선린의터를 선린인터넷고등학교 학생들은 이미 잘 알고 있겠지만, 학교 교가를 부를 때는 마지막 5글자인 "선린의터를" 부분만 크고 우렁차게 불러야 한다. 정휘는 여기에 영감을 받아, 문자열이 주어지면 마지막 5글자만 우렁차게 읽으려고 한다. 공백이 없는 문자열이 주어지면 마지막 5글자만 출력하는 프로그램을 작성해보자. 입력 첫 번째 줄에 문자열의 길이 N이 주어진다. 두 번째 줄에는 N글자로 이루어진 문자열 S가 주어진다. 출력 S의 마지막 5글자를 ..
[ BOJ ] 2662 : 기업투자 ( GOLD 2 ) / Python
·
-- 예전 기록/BOJ
문제 어떤 투자가가 여러 기업들에게 돈을 투자해서 최대의 이익을 얻고자 한다. 단, 투자는 만원 단위로 할 수 있으며 각 기업은 많이 투자할수록 많은 이익을 투자가에게 돌려준다. 돈을 투자하지 않은 경우는 당연히 얻게 되는 이익도 없다. 예를 들어서, 한 투자가가 4만원을 갖고 두 개의 기업들에 각각 만원 단위로 투자했을 경우 얻을 수 있는 이익은 다음과 같다. 투자 액수 (만원) 기업 A 기업 B 1 5 1 2 6 5 3 7 9 4 8 15 위의 경우 만일, 기업 A에 1만원, 기업 B에 3만원을 투자하는 경우 투자가가 얻는 이익은 14만원(5만원+9만원)이다. 4만원을 투자해서 가장 많은 이익을 얻을 경우 기업 B에만 4만원을 투자하는 경우로서 이때의 이익은 15만원이다. 여기서 투자가는 한 기업에 ..
[ BOJ ] 5582 : 공통 부분 문자열 ( GOLD 5 ) / Python
·
-- 예전 기록/BOJ
문제 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들어, 문자열 ABRACADABRA의 부분 문자열은 ABRA, RAC, D, ACADABRA, ABRACADABRA, 빈 문자열 등이다. 하지만, ABRC, RAA, BA, K는 부분 문자열이 아니다. 두 문자열 ABRACADABRA와 ECADADABRBCRDARA의 공통 부분 문자열은 CA, CADA, ADABR, 빈 문자열 등이 있다. 이 중에서 가장 긴 공통 부분 문자열은 ADABR이며, 길이는 5이다. 또, 두 문자열이 UPWJCIRUCAXIIRGL와 SBQNYBSBZDFNEV인 경우에는 가장 긴 공..
[ BOJ ] 5719 : 거의 최단 경로 ( PLATINUM 5 ) / Python
·
-- 예전 기록/BOJ
문제 요즘 많은 자동차에서는 GPS 네비게이션 장비가 설치되어 있다. 네비게이션은 사용자가 입력한 출발점과 도착점 사이의 최단 경로를 검색해 준다. 하지만, 교통 상황을 고려하지 않고 최단 경로를 검색하는 경우에는 극심한 교통 정체를 경험할 수 있다. 상근이는 오직 자기 자신만 사용 가능한 네비게이션을 만들고 있다. 이 네비게이션은 절대로 최단 경로를 찾아주지 않는다. 항상 거의 최단 경로를 찾아준다. 거의 최단 경로란 최단 경로에 포함되지 않는 도로로만 이루어진 경로 중 가장 짧은 것을 말한다. 예를 들어, 도로 지도가 아래와 같을 때를 생각해보자. 원은 장소를 의미하고, 선은 단방향 도로를 나타낸다. 시작점은 S, 도착점은 D로 표시되어 있다. 굵은 선은 최단 경로를 나타낸다. (아래 그림에 최단 경..
[ BOJ ] 2908 : 상수 ( BRONZE 2 ) / C, C++, Python, Java
·
-- 예전 기록/BOJ
문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력 첫째 줄에 상수의 대답을 출력한다. 풀..
[ BOJ ] 6825 : Body Mass Index ( BRONZE 4 ) / C, Python
·
-- 예전 기록/BOJ
문제 The Body Mass Index (BMI) is one of the calculations used by doctors to assess an adult’s health. The doctor measures the patient’s height (in metres) and weight (in kilograms), then calculates the BMI using the formula BMI = weight/(height × height). Write a program which prompts for the patient’s height and weight, calculates the BMI, and displays the corresponding message from the table be..
[ BOJ ] 19602 : Dog Treats ( BRONZE 4 ) / C, Python
·
-- 예전 기록/BOJ
문제 Barley the dog loves treats. At the end of the day he is either happy or sad depending on the number and size of treats he receives throughout the day. The treats come in three sizes: small, medium, and large. His happiness score can be measured using the following formula: 1 × S + 2 × M + 3 × L where S is the number of small treats, M is the number of medium treats and L is the number of lar..
[ BOJ ] 28701 : 세제곱의 합 ( BRONZE 5 ) / C, Python
·
-- 예전 기록/BOJ
문제 은하는 수업 때 $1$부터 $N$까지 수의 합과 $1$부터 $N$까지 수의 세제곱의 합과 관련된 다음 공식을 배웠습니다. $ (1+2+⋯+N)^2=1^3+2^3+⋯+N^3$ 믿을 수 없었던 은하는 직접 코딩을 해서 검증해 보기로 했습니다. $1$부터 $N$까지 수의 합과 그 수를 제곱한 수, 또 $1$부터 $N$까지 수의 세제곱의 합을 차례대로 출력하세요. 입력 첫 줄에 문제의 정수 $N$이 주어집니다. $(5 \le N \le 100)$ 출력 세 줄을 출력하세요. 첫 줄에는 $1$부터 $N$까지 수의 합 $1+2+\cdots+N$을 출력하세요. 둘째 줄에는 $1$부터 $N$까지 수의 합을 제곱한 수 $(1+2+\cdots+N)^2$을 출력하세요. 셋째 줄에는 $1$부터 $N$까지 수의 세제곱의 합..
[ BOJ ] 5585 : 거스름돈 ( BRONZE 2 ) / C, Python
·
-- 예전 기록/BOJ
문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. 출력 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. 풀이 과정 거스름돈을 500엔, 100엔, 50엔, 10엔, 5엔, 1엔으로 나누었을 때 동전 갯수를 출력한다. 동전 갯수 = ( 거스름돈을 500으로 나눈 몫 ) + ( (거스름돈을 500으로..
[ BOJ ] 28444 : HI-ARC=? ( BRONZE 5 ) / C, Python
·
-- 예전 기록/BOJ
문제 HI-ARC 학회는 일상 속의 문장들을 수식으로 표현하는 것을 즐기는 특이한 문화를 가지고 있다. HI-ARC 수식은 HI-ARC 학회에서 최근에 개발한 독특한 수식으로, 아래와 같은 규칙으로 계산한다. H와 I의 곱이 첫 번째 항이다. A와 R과 C의 곱이 두 번째 항이다. 결과값은 첫 번째 항에서 두 번째 항을 뺀 값이다. 각각의 문자에 대응되는 숫자가 입력될 때, 결과값을 출력하자! 입력 첫째 줄에 각 문자에 들어갈 값 H, I, A, R, C (0 ≤ H, I, A, R, C ≤ 100, H, I, A, R, C는 정수) 가 공백을 사이에 두고 순서대로 주어진다. 출력 수식을 계산한 결과값을 출력한다. 풀이 과정 결과값은 (H와 I의 곱) 에서 (A와 R과 C의 곱) 을 뺀 값이다. 이를 출..
[ BOJ ] 29720 : 그래서 님 푼 문제 수가? ( BRONZE 3 ) / C, Python
·
-- 예전 기록/BOJ
문제 브실이는 하루라도 빨리 대회 출제 자격을 얻기 위해서 1000문제 해결을 목표로 매일 문제를 풀고 있다. 그러다 보니 다른 사람들의 푼 문제 수에 관심이 많다. 사람들은 “저는 총 1000문제 이상 해결하려면 하루에 5문제씩 최소 128일은 더 풀어야 해요”와 같이 자신이 몇 문제를 풀었는지 설명한다. 브실이는 이 말을 들을 때마다 상대방이 현재까지 몇 문제를 풀었는지 궁금해서 참을 수 없었다. 브실이를 도와 상대방이 푼 문제 수의 최솟값과 최댓값을 구해보자. 입력 첫 번째 줄에 양의 정수 N, M, K가 공백으로 구분되어 주어진다. (1 ≤ N, M, K ≤ 2000) 이는 “저는 총 N문제 이상 해결하려면 하루에 M문제씩 최소 K일은 더 풀어야 해요”라는 의미이다. K일이 지나기 전에 N문제를 ..