[ BOJ ] 11943 : 파일 옮기기 ( BRONZE 4 ) / C, Python
·
-- 예전 기록/BOJ
문제 두 개의 바구니에 사과와 오렌지가 있다. 첫 번째 바구니에는 사과 A개와 오렌지 B개가 있으며 두 번째 바구니에는 사과 C개와 오렌지 D개가 있다. 당신은 한 바구니에 있는 과일 하나를 집어서 다른 바구니로 옮길 수 있다. 이런 식으로 과일을 옮길 때, 한 바구니에는 사과만 있게 하고 다른 쪽에는 오렌지만 있게 하려고 한다. 앞서 말한 조건을 만족하도록 과일을 옮길 때, 과일을 옮기는 최소 횟수를 구하는 프로그램을 작성하여라. 입력 첫 번째 줄에는 첫 번째 바구니에 있는 사과와 오렌지의 수 A, B가 주어진다. (0 ≤ A, B ≤ 1,000) 두 번째 줄에는 두 번째 바구니에 있는 사과와 오렌지의 수 C, D가 주어진다. (0 ≤ C, D ≤ 1,000) 출력 사과와 오렌지를 옮기는 최소 횟수를 ..
[ BOJ ] 28295 : 체육은 코딩과목 입니다 ( BRONZE 4 ) / C, Python
·
-- 예전 기록/BOJ
문제 UCPC 초등학교의 체육대회 날이 다가오고 있다. UCPC 초등학교 1학년 1반의 학생들은 담임 선생님 종서의 지시에 맞춰 특정한 방향을 바라보는 연습을 하고 있다. 학생들은 초기에 북쪽을 바라보고 있으며, 종서는 다음과 같은 형태의 지시를 총 열 번 내린다: 우향우: 각 학생은 현재 상태에서 오른쪽으로 90도 돈다. 뒤로 돌아: 각 학생은 현재 상태에서 오른쪽으로 180도 돈다. 좌향좌: 각 학생은 현재 상태에서 왼쪽으로 90도 돈다. 종서는 초등학생들이 지시를 정확하게 이행하는 것이 어렵다는 것을 인지하고, 학생들이 자신의 지시를 성공적으로 따른다면 사탕을 나누어 주기로 했다. 학생들을 도와 담임 선생님 종서의 지시대로 바라보는 방향을 바꾸었을 때, 최종적으로 바라보는 방향을 구해보자. 입력 1..
[ BOJ ] 2675 : 문자열 반복 ( BRONZE 2 ) / C, C++, Python, Java
·
-- 예전 기록/BOJ
문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 풀이 과정 입력으로 들..
[ BOJ ] 10809 : 알파벳 찾기 ( BRONZE 2 ) / C, C++, Python, Java
·
-- 예전 기록/BOJ
문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 풀이 과정 알파벳의 등장 위치를 저장하는 크기 26의 배열을 만들어서, 단어 S를 탐색한 후 알파벳이 처음 등장하..
[ BOJ ] 25628 : 햄버거 만들기 ( BRONZE 4 ) / C, Python
·
-- 예전 기록/BOJ
문제 햄버거 가게에서 일하는 종현이는 햄버거를 만드는 일을 하고 있다. 가게에는 햄버거 빵이 A개, 햄버거 패티가 B개 있는데, 이 빵과 패티를 가지고 최대한 햄버거를 많이 만드려고 한다. 햄버거를 만드는 과정은 아주 간단한 세 단계로 이루어져 있다. 그릇 위에 빵을 놓는다. 빵 위에 패티를 올린다. 패티 위에 다시 빵을 올려서 햄버거를 완성시킨다. 햄버거 빵 A개와 햄버거 패티 B개로 만들 수 있는 햄버거의 최대 개수는 얼마일까? 단, 햄버거 빵은 위에 놓는 빵과 아래에 놓는 빵의 구분이 없으며, 남는 빵이나 패티가 있어도 된다. 입력 첫째 줄에 햄버거 빵의 개수와 햄버거 패티의 개수를 의미하는 A, B (1 ≤ A, B ≤ 100) 가 주어진다. 출력 만들 수 있는 햄버거의 최대 개수를 출력한다. 풀..
[ BOJ ] 13752 : 히스토그램 ( BRONZE 4 ) / C, Python
·
-- 예전 기록/BOJ
문제 히스토그램은 데이터를 시각적으로 표현한 것이다. 막대로 구성되며 각 막대의 길이는 데이터 양의 크기를 나타낸다. 일부 데이터가 주어지면 히스토그램을 생성하시오. 입력 첫 번째 줄에는 테스트 케이스의 개수 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
·
-- 예전 기록/BOJ
문제 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
·
-- 예전 기록/BOJ
문제 알파벳 소문자, 대문자, 숫자 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
·
-- 예전 기록/BOJ
문제 아무래도 우리 팀 다리우스가 고수인 것 같다. 그의 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
·
-- 예전 기록/BOJ
문제 상근이는 초등학교에 다닐 때, 방학 숙제를 남들보다 먼저 미리 하고 남은 기간을 놀았다. 방학 숙제는 수학과 국어 문제 풀기이다. 방학은 총 L일이다. 수학은 총 B페이지, 국어는 총 A페이지를 풀어야 한다. 상근이는 하루에 국어를 최대 C페이지, 수학을 최대 D페이지 풀 수 있다. 상근이가 겨울 방학동안 숙제를 하지 않고 놀 수 있는 최대 날의 수를 구하는 프로그램을 작성하시오. 입력 한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100) 항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다. 출력 첫째 줄에 상근이가 놀 수 있는 날의 최댓값을 출력한다. 풀이 과정 상근이가 하루..
[ BOJ ] 5341 : Pyramids ( BRONZE 5 ) / C, Python
·
-- 예전 기록/BOJ
문제 A pyramid of blocks is constructed by first building a base layer of n blocks and then adding n-1 blocks to the next layer. This process is repeated until the top layer only has one block. You must calculate the number of blocks needed to construct a pyramid given the size of the base. For example, a pyramid that has a base of size 4 will need a total of 10 blocks. 입력 The input will be a sequ..
[ BOJ ] 29751 : 삼각형 ( BRONZE 5 ) / C, Python
·
-- 예전 기록/BOJ
문제 양의 정수 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..