전체 글 465

[ 2023-2 Tutoring ] 1주차 문제 풀이 목록

가천대학교 2023-2 튜터링 프로그램 일반전공(프로그래밍4) 반에서 다룬 오늘의 문제 풀이입니다. 2023-09-20 1. [ BOJ ] 14645 : 와이버스 부릉부릉 ( Bronze 5 ) / C, Python https://readytojoin.tistory.com/166 2. [ BOJ ] 15733 : 나는 누구인가 ( BRONZE 5 ) / C, Python https://readytojoin.tistory.com/167 2023-09-21 1. [ BOJ ] 15680 : 연세대학교 ( BRONZE 5 ) / C, Python https://readytojoin.tistory.com/170 2. [ BOJ ] 24568 : Cupcake Party ( BRONZE 5 ) / C, Pytho..

[ BOJ ] 1152 : 단어의 개수 ( BRONZE 2 ) / Python

문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 풀이 과정 공백으로 구분되는 단어들을 분할하여 갯수를 센다. ( 문자열이 공백으로 시작하거나 끝날 수 있다는 점을 유의하자. ) Python arr = list(input().rstrip().split(' ')) print(l..

[ BOJ ] 11943 : 파일 옮기기 ( BRONZE 4 ) / C, Python

문제 두 개의 바구니에 사과와 오렌지가 있다. 첫 번째 바구니에는 사과 A개와 오렌지 B개가 있으며 두 번째 바구니에는 사과 C개와 오렌지 D개가 있다. 당신은 한 바구니에 있는 과일 하나를 집어서 다른 바구니로 옮길 수 있다. 이런 식으로 과일을 옮길 때, 한 바구니에는 사과만 있게 하고 다른 쪽에는 오렌지만 있게 하려고 한다. 앞서 말한 조건을 만족하도록 과일을 옮길 때, 과일을 옮기는 최소 횟수를 구하는 프로그램을 작성하여라. 입력 첫 번째 줄에는 첫 번째 바구니에 있는 사과와 오렌지의 수 A, B가 주어진다. (0 ≤ A, B ≤ 1,000) 두 번째 줄에는 두 번째 바구니에 있는 사과와 오렌지의 수 C, D가 주어진다. (0 ≤ C, D ≤ 1,000) 출력 사과와 오렌지를 옮기는 최소 횟수를 ..

[ BOJ ] 28295 : 체육은 코딩과목 입니다 ( BRONZE 4 ) / C, Python

문제 UCPC 초등학교의 체육대회 날이 다가오고 있다. UCPC 초등학교 1학년 1반의 학생들은 담임 선생님 종서의 지시에 맞춰 특정한 방향을 바라보는 연습을 하고 있다. 학생들은 초기에 북쪽을 바라보고 있으며, 종서는 다음과 같은 형태의 지시를 총 열 번 내린다: 우향우: 각 학생은 현재 상태에서 오른쪽으로 90도 돈다. 뒤로 돌아: 각 학생은 현재 상태에서 오른쪽으로 180도 돈다. 좌향좌: 각 학생은 현재 상태에서 왼쪽으로 90도 돈다. 종서는 초등학생들이 지시를 정확하게 이행하는 것이 어렵다는 것을 인지하고, 학생들이 자신의 지시를 성공적으로 따른다면 사탕을 나누어 주기로 했다. 학생들을 도와 담임 선생님 종서의 지시대로 바라보는 방향을 바꾸었을 때, 최종적으로 바라보는 방향을 구해보자. 입력 1..

[ BOJ ] 2675 : 문자열 반복 ( BRONZE 2 ) / C, C++, Python, Java

문제 문자열 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

문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 풀이 과정 알파벳의 등장 위치를 저장하는 크기 26의 배열을 만들어서, 단어 S를 탐색한 후 알파벳이 처음 등장하..

[ 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