[백준(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 함수는 정수가 저장..
[백준(BOJ)] 4344번 평균은 넘겠지, C언어 풀이
·
PS(Problem Solving)/C
, 4344번 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 예제 입력 1 5 5 50 50 70 80 100 7 100 95 90 80 70 60 50 3 70 90 80 3 70 90 81 9 100 99 98 97 96 95 94 93 91 예제 출력 1 40.000% 57.1..
[백준(BOJ)] 10872번 팩토리얼, C언어 풀이
·
PS(Problem Solving)/C
, 10872번 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다. 출력 첫째 줄에 N!을 출력한다. 예제 입력 1 10 예제 출력 1 3628800 풀이 이 문제는 양의 정수 하나를 입력받은 후 그 양의 정수의 팩토리얼 값을 구하는 프로그램을 제작하는 것이다. 나는 재귀 함수를 사용해서 이 문제를 풀이하려고 접근했다. 먼저, 양의 정수 하나를 num값에 입력받은 후 재귀적으로 함수를 구현하기 위해 return에 팩토리얼 함수를 –1만큼 감소 시킨 값을 적용시킨 후, 계속 재귀적으로 반복해 num 값이 0이 되면 return 1로 해서 종료시켰다. #include int Factorial(int num) ..
[백준(BOJ)] 2941번 크로아티아 알파벳, C언어 풀이
·
PS(Problem Solving)/C
, 2941번 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다. 단어는 크로아티아 알파벳..