프로그래밍
(파이썬) 백준 1193. 분수찾기
문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. 입력 X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 출력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 첫째 줄에 분수를 출력한다. 구상 분모를 a, 분자를 b라 하자. k는 대각선으로 몇 번 왔다갔다 했는지 나타낸다. k a b count 1 1 1 1 2..
<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 7(11, 12)
11. 2*3 행렬 A와 3 * 4 행렬 B를 곱한 결과인 2 * 4 행렬 C를 구하여 다음과 같이 출력하시오. #include #define M 2 #define N 3 #define O 4 int main() { int a[M][N] = { {1,2,3}, {4,5,6} }; int b[N][O] = { {3,4,5,6}, {1,2,4,3}, {4,2,6,1} }; int c[M][O] = { 0 }; int i, j, k; for (i = 0; i < M; i++) { for (j = 0; j < O; j++) { for (k = 0; k < N; k++) { c[i][j] += a[i][k] * b[k][i]; } } } for (i = 0; i < M; i++) { printf("["); for..
(파이썬)백준 1065. 한수
문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 구상 n을 입력받는다. 1부터 99까지는 모두 한수이므로 이 경우 res에 1을 더한다. 100부터 999까지는 각 자리를 따로 저장한다. a에는 백의 자리, b에는 십의 자리, c에는 일의 자리를 저장하고, a-b가 b-c가 같으면, 즉 등차수열이면 True를 반환한다. 3번을 수행하는 함수 han이 Tru..
<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 7(6, 7, 8, 9, 10)
6. 5번의 프로그램에서 달의 일수가 30일인 달의 수를 다음과 같이 출력하시오. #include int main(void) { //첨자 번호가 월과 일치하도록 첫 요소는 0으로 초기화 int days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int count = 0; printf("12달 중 30일까지 있는 달은"); for (int i = 0; i < 13; i++) { if (days[i] == 30) { printf(" %d,", i); count++; } } printf("\b "); printf("총 %d달입니다.", count); return 0; } 7. 행렬의 덧셈 결과를 다음과 같이 출력하도록 [프로그램 7-7]을 수정..
(C언어) 백준 2292. 벌집
문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 구상 1 까지는 1칸 걸린다. 2 부터 7(1+6) 까지는 2칸 걸린다. 8부터 19(1+6+12) 까지는 3칸 걸린다. 20부터 37(..
(C언어)백준 1712. 손익분기점
문제 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다. A, B, C가 주어졌..
(C언어)백준 4344. 평균은 넘겠지
문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 구상 입력받은 테스트 케이스 수(caseCount)만큼 배열(arr1)을 하나 만든다. 평균을 넘은 학생 비율을 저장하기 위함이다. 2. 학생 수를 입력받는다. 3. 입력받은 학생 수(eachCount)만큼 배열(arr2)을 하나 만들고..
(C언어) 백준 1546. 평균
문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대..