[백준(BOJ)] 2798번 블랙잭, C언어 풀이
·
PS(Problem Solving)/C
, 2798번 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 ..
[백준(BOJ)] 1924번 2007년, C언어 풀이
·
PS(Problem Solving)/C
, 1924번 문제 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. 출력 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다. 예제 입력 1 복사 1 1 예제 출력 1 복사 MON 예제 입력 2 복사 3 14 예제 출력 2 복사 WED 예제 입력 3 복사 9 2 예제 출력 3 복사 SUN 예제 입력 4 복사 12 25 예제 출력 4 ..
[백준(BOJ)] 10870번 피보나치 수 5, C언어 풀이
·
PS(Problem Solving)/C
, 10870번 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 예제 입력 1 복사 10 예제 출력 1 복사 55 풀이 이 문제는 피보나치 수열..
[백준(BOJ)] 2747번 피보나치 수, C언어 풀이
·
PS(Problem Solving)/C
, 2747번 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 45보다 작거나 같은 자연수이다. 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 예제 입력 1 복사 10 예제 출력 1 복사 55 풀이 이 문제는 피보나치 수열을 이해하면..
윤성우의 열혈 C프로그래밍 16장, 다차원 배열 문제 풀이
·
PS(Problem Solving)/C
(chap 16 : 다차원 배열) - 간단 개념 int arr1[3] [4]; // 세로가 3, 가로가 4인 int형 2차원 배열 TYPE arr[세로길이] [가로길이]; // 2차원 배열의 선언형태 TYPE arr2[높이] [세로길이] [가로길이]; // 3차원 배열의 선언형태 1. 문제1 가로의 길이가 9, 세로의 길이가 3인 int형 2차원 배열을 선언하여 구구단 중 2단, 3단, 4단을 저장한 후 출력해라. 풀이 단순하게 이중 for문을 사용해서 2차원 배열에 값을 저장하는 방식을 통해서 해결 할 수 있다. #include int main(void) { int arr[3][9]; for (int i = 0; i < 3; i++) for (int j = 0; j < 9; j++) arr[i][j] ..
버블 소트, 버블 정렬(BubbleSort) 오름차순 및 내림차순 C언어 풀이
·
PS(Problem Solving)/C
- 간단 개념 길이가 5인 배열에 정수 2, 3, 4, 1, 5가 저장되어 있다고 가정하고, 이것을 오름차순(ascending order)으로 정렬하면 순서가 1, 2, 3, 4, 5로 재배치될 것이고, 내림차순(descending order)으로 정렬하면 순서가 5, 4, 3, 2, 1로 재배치 될 것이다. 1. 오름차순 버블 정렬 풀이 가장 먼저 해야 할 일은 배열의 가장 큰 값을 배열의 마지막으로 보내는 것이다. 이는 앞에서부터 두 개의 수를 비교해서 큰 수를 뒤로 보내면 된다. 그렇게 되면 배열의 마지막 자리는 가장 큰 값이 자리잡고 있기 때문에 마지막 자리를 건드릴 필요가 없다. 그리고 그 다음 큰 값을 배열의 마지막 자리 바로 앞으로 배치시켜야 한다. 이런 식으로 반복하면 버블 정렬이 완성된다..
윤성우의 열혈 C프로그래밍 15장, 도전! 프로그래밍2 문제 풀이
·
PS(Problem Solving)/C
(chap 15 : 도전! 프로그래밍2) 문제1 #include int Oddprint(int* arr, int len) { for (int i = 0; i < len; i++) { if (arr[i] % 2 == 1) printf("%d ", arr[i]); } } int Evenprint(int* arr, int len) { for (int i = 0; i < len; i++) { if (arr[i] % 2 == 0) printf("%d ", arr[i]); } } int main(void) { int arr[10]; printf("총 10개의 숫자 입력\n"); for (int i = 0; i < 10; i++) { printf("입력 : "); scanf_s("%d", &arr[i]); } pri..
윤성우의 열혈 C프로그래밍 14장, 포인터와 함수에 대한 이해 문제 풀이
·
PS(Problem Solving)/C
(chap 14 : 포인터와 함수에 대한 이해) - 간단 개념 Call-by-value : 함수를 호출할 때 단순히 값을 전달하는 형태의 함수호출. Call-by-reference : 메모리의 접근에 사용되는 주소 값을 전달하는 형태의 함수호출. 1. 문제1 변수 num에 값을 저장하고 저장된 값의 제곱을 계산하는 함수를 정의하고, 이를 호출하는 main 함수를 작성해보자. 단, 여기서는 다음 두 가지 형태로 함수를 정의해야 한다. l Call-by-value 기반의 SquareByValue 함수. l Call-by-reference 기반의 SquareByReference 함수. SquareByValue 함수는 인자로 전달된 값의 제곱을 반환해야 하며, SquareByReference 함수는 정수가 저장..