-- 예전 기록/BOJ 369

[ BOJ ] 25628 : 햄버거 만들기 ( BRONZE 4 ) / C, Python

문제 햄버거 가게에서 일하는 종현이는 햄버거를 만드는 일을 하고 있다. 가게에는 햄버거 빵이 A개, 햄버거 패티가 B개 있는데, 이 빵과 패티를 가지고 최대한 햄버거를 많이 만드려고 한다. 햄버거를 만드는 과정은 아주 간단한 세 단계로 이루어져 있다. 그릇 위에 빵을 놓는다. 빵 위에 패티를 올린다. 패티 위에 다시 빵을 올려서 햄버거를 완성시킨다. 햄버거 빵 A개와 햄버거 패티 B개로 만들 수 있는 햄버거의 최대 개수는 얼마일까? 단, 햄버거 빵은 위에 놓는 빵과 아래에 놓는 빵의 구분이 없으며, 남는 빵이나 패티가 있어도 된다. 입력 첫째 줄에 햄버거 빵의 개수와 햄버거 패티의 개수를 의미하는 A, B (1 ≤ A, B ≤ 100) 가 주어진다. 출력 만들 수 있는 햄버거의 최대 개수를 출력한다. 풀..

[ BOJ ] 13752 : 히스토그램 ( BRONZE 4 ) / C, Python

문제 히스토그램은 데이터를 시각적으로 표현한 것이다. 막대로 구성되며 각 막대의 길이는 데이터 양의 크기를 나타낸다. 일부 데이터가 주어지면 히스토그램을 생성하시오. 입력 첫 번째 줄에는 테스트 케이스의 개수 n (1 ≤ n ≤ 100)이 주어진다. 다음 n 개의 줄에는 각 히스토그램의 크기 k (1 ≤ k ≤ 80)가 주어진다. 출력 각 테스트 케이스에 대해서 히스토그램의 크기 k와 동일한 수의 '='를 출력한다. '='사이에 공백은 존재하지 않는다. 풀이 과정 n개의 줄에 입력되는 k 를 입력받을 때 마다 '=' 를 k 번 출력한다. C #include int main(void) { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { int k; scanf..

[ BOJ ] 11720 : 숫자의 합 ( BRONZE 4 ) / C, C++, Python, Java

문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. 풀이 과정 공백없이 주어진 한 자리 숫자들을 전부 더한다. 다만 숫자 자료형에 공백없이 주어진 숫자들을 저장하는 것은 무리이므로, 문자열에 저장해서 한 글자씩 숫자를 따서 합을 계산한다. 다만, 문자열에 저장하는 것이기 때문에, 숫자로 계산하기 위해선 아스키 코드 이론을 이용해 문자 0을 빼서 계산해야 올바른 숫자 값을 얻을 수 있다. ( '3' - '0' = 3 ) C #include char s[101]; int main(void) { int n..

[ BOJ ] 11654 : 아스키 코드 ( BRONZE 5 ) / C, C++, Python, Java

문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력 입력으로 주어진 글자의 아스키 코드 값을 출력한다. 풀이 과정 입력받은 문자에 대한 아스키 코드를 출력한다. C #include int main(void) { char ch; scanf("%c", &ch); printf("%d", ch); return 0; } C++ #include using namespace std; int main(void) { char ch; cin >> ch; cout

[ BOJ ] 20499 : Darius님 한타 안 함? ( BRONZE 4 ) / C, Python

문제 아무래도 우리 팀 다리우스가 고수인 것 같다. 그의 K/D/A를 보고 그가 「진짜」인지 판별해 보자. K+A < D이거나, D = 0이면 그는 「가짜」이고, 그렇지 않으면 「진짜」이다. 입력 K/D/A가 주어진다. 출력 그가 「진짜」이면 gosu, 「가짜」이면 hasu를 출력한다. 풀이 과정 K+A < D 이거나 D = 0 이면 hasu를 출력하고, 그 외에는 gosu를 출력한다. C #include int main(void) { int K, D, A; scanf("%d/%d/%d", &K, &D, &A); if (K + A < D || D == 0) printf("hasu"); else printf("gosu"); return 0; } Python K, D, A = map(int, input()...

[ BOJ ] 5532 : 방학 숙제 ( BRONZE 4 ) / C, Python

문제 상근이는 초등학교에 다닐 때, 방학 숙제를 남들보다 먼저 미리 하고 남은 기간을 놀았다. 방학 숙제는 수학과 국어 문제 풀기이다. 방학은 총 L일이다. 수학은 총 B페이지, 국어는 총 A페이지를 풀어야 한다. 상근이는 하루에 국어를 최대 C페이지, 수학을 최대 D페이지 풀 수 있다. 상근이가 겨울 방학동안 숙제를 하지 않고 놀 수 있는 최대 날의 수를 구하는 프로그램을 작성하시오. 입력 한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100) 항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다. 출력 첫째 줄에 상근이가 놀 수 있는 날의 최댓값을 출력한다. 풀이 과정 상근이가 하루..

[ BOJ ] 29751 : 삼각형 ( BRONZE 5 ) / C, Python

문제 양의 정수 W, H가 주어진다. 밑변의 길이가 W이고, 높이가 H인 삼각형의 넓이를 구하시오. 입력 정수 W, H가 공백으로 구분되어 주어진다. (1 ≤ W, H ≤ 100) 출력 밑변의 길이가 W이고, 높이가 H인 삼각형의 넓이를 출력한다. 넓이는 항상 소수점 아래 첫 번째 자리까지 출력한다. 풀이 과정 삼각형의 넓이 (W * H * 0.5) 를 소수점 아래 첫 번째 자리까지 출력한다. C #include int main(void) { int w, h; scanf("%d %d", &w, &h); printf("%.1lf", (double)w * h / 2); return 0; } C언어에서는 정수로 들어온 밑변의 길이와 높이를 소수 계산에 사용하기 위해 형변환을 해야한다는 것에 유의한다. Pyth..

[ BOJ ] 9086 : 문자열 ( BRONZE 5 ) / C, C++, Python, Java

문제 문자열을 입력으로 주면 문자열의 첫 글자와 마지막 글자를 출력하는 프로그램을 작성하시오. 입력 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으며 문자열의 길이는 1000보다 작다. 출력 각 테스트 케이스에 대해서 주어진 문자열의 첫 글자와 마지막 글자를 연속하여 출력한다. 풀이 과정 인덱싱을 이용해 첫 글자와 마지막 글자를 출력한다. C #include #include int main(void) { int t; scanf("%d", &t); char str[1001]; while (t--) { scanf("%s", str); printf("%c%c..

[ BOJ ] 2743 : 단어 길이 재기 ( BRONZE 5 ) / C, C++, Python, Java

문제 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다. 출력 첫째 줄에 입력으로 주어진 단어의 길이를 출력한다. 풀이 과정 단어를 입력받고, length 를 구하는 함수를 사용하여 단어의 길이를 출력한다. C #include #include int main(void) { char word[101]; scanf("%s", word); printf("%d", strlen(word)); return 0; } C++ #include #include using namespace std; int main(void) { string word; cin >> word; cout