티스토리

    (파이썬) 백준 10250. ACM 호텔

    문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..

    <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프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 7(1, 2, 3, 4, 5)

    1. 1차원 배열의 크기 즉 원소수가 10일 때 유효한 첨자의 범위를 적으시오. 0~9 2. 다음 문장 중 틀린 것을 고르시오. ① 다음과 같이 배열을 선언한 후 대입문으로 배열명에 배열 원소들을 한꺼번에 저장할 수 있다. int a[5] a = {1, 2, 3, 4, 5}; ② 배열의 여러 원소 중 한 개를 지정하기 위해 '배열명[2]'와 같이 [] 안에 명시하는 정수를 첨자라고 한다. ③ 1차원 배열 ary의 크기 즉 배열의 원소수가 10이라면 첫 원소는 ary[1], 마지막 원소는 ary[10]으로 참조한다. - 첫 원소는 ary[0], 마지막 원소는 ary[10]으로 참조한다. ④ int형 자료 10개, double형 자료 10개, char형 자료 10개 모두 30개의 자료를 하나의 배열에 저장할..