선택 정렬 알고리즘의 시간 복잡도는 O(N^2)이다. 선택 정렬 알고리즘을 C언어로 작성 한 것이다. #include int main(void){ int i, j, min, index, temp; int array[10] = {1, 10, 5, 8, 7 , 6, 4, 3, 2, 9}; for(i = 0; i array[j]) { min = array[j]; index = j; } } temp = array[i]; array[i] = array[index]; array[index] = temp; } for(i = 0; i
for문 구현문제인 별찍기이다. 1-2학기 중간고사 대비를 위해 문제를 풀어보았다. 안이 채워지지 않은 직사각형 구현하기 #include int main() { int n; scanf_s("%d", &n); for (int i = 1; i i * 2 + 1; j--) { printf("*"); } printf("\n"); } } 1~n까지 한줄에 출력하기, 숫자가 커지면 커진만큼 숫자 출력 #include int main() { int n; scanf_s("%d", &n); for (int i = 1; i n / 2) { for (int j = 0; j i * 2 + 1; j--) { if (n*2 ==..
유클리드 알고리즘(Euclidean algorithm)은 2개의 자연수의 최대공약수를 구하는 알고리즘입니다. 비교대상의 두 개의 자연수 a와 b에서(단 a>b) a를 b로 나눈 나머지를 r이라고 했을때 GCD(a, b) = GCD(b, r)과 같고 "r이 0이면 그때 b가 최대공약수이다."라는 원리를 활용한 알고리즘입니다. ex) GCD(24,16) -> GCD(16,8) -> GCD(8,0) : 최대공약수 = 8 라고 한다..... c언어로 알고리즘을 파악해보자. (C프밍 과제) 먼저 최소 공약수 알고리즘이다. 1. 두 수를 입력 받는다. 2. 두 수중 큰 수를 x, 작은 수를 y라고 한다. 3. y=0이면 최대공약수는 x이며 프로그램을 종료한다. 4. r = x % y 5. x = y 6 y = r ..
조건문 예제 프로그램 연습 1. 온도를 입력 받아 출력하는 프로그램을 작성하자. 단, 입력 받은 온도가 0도 미만이면 온도 출력시 "영하"를 덧붙여 출력하자. (if문 사용) #include int main(void) { int Temp; scanf("%d", &Temp); if(Temp < 0){ printf("오늘 온도는 영하 %d도 입니다.", Temp - Temp*2); } else{ printf("오늘 온도는 %d도 입니다.", Temp); } } 2. 입력한 정수가 음의 짝수, 음의 홀수, 양의 짝수, 양의 홀수인지를 판정하는 프로그램을 중첩된 if문을 사용하여 작성해보시오. #include int main(void) { int input; scanf("%d", &input); if(input..
주요 문법 확인 1. 대입 연산자를 사용한 아래 식을 설명 해 보시오. A. x = 100, 이처럼 x에 100을 할당하는 연산자 '='을 대입 연산자 라고 부른다. 1) x = 100; x는 100이다. 2) y = x + 1; y는 x+1이다. 3) ch = 'a' char 변수 ch에 'a'가 들어있다. 2. 아래 산술 연산자를 포함하는 식의 계산 과정과 결과를 설명 해 보시오. A. +, - , *. /. % 같은 산술 연산자가 있으며 덧셈, 뺄셈, 곱셈, 나눗셈, 나누고 남은 나머지를 반환하는 것들이 있다. 1) 5 / 2 int x = 5; int y = 2; printf("%d",x / y); / 연산자는 값을 나누고 몫을 출력한다. %d로 출력할 경우 2가 나올 것이다. 2) 5.0 / 2..
백준 온라인 저지 / 15921번 수찬은 마린보이야!! https://www.acmicpc.net/problem/15921 15921번: 수찬은 마린보이야!! 기댓값 E(X)의 정의는 ‘각 사건이 벌어졌을 때의 이득과 그 사건이 벌어질 확률을 곱한 것을 전체 사건에 대해 합한 값’이다. 다시 말해, 어떤 수 x가 수열에 등장할 확률 P(x) = (x의 등장 횟수) / www.acmicpc.net 사용언어 : C (C99) 알고리즘 : 수학, 사칙연산 C 코드 1. 문제 정리 1개의 정수로 테스트 케이스를 받고, 테스트 케이스만큼 입력 받아오는 문제이다. (연습 기록들의 평균값) / (연습 기록들 중 하나를 균일한 확률로 뽑을 때의 기댓값) 이라는 말을 제대로 이해 하지 못한다면 해결 할 수 없는 문제이다..
백준 온라인 저지 / 15700번 타일 채우기 4 https://www.acmicpc.net/problem/15700 15700번: 타일 채우기 4 첫째 줄에 N과 M이 주어진다. (1 ≤ N, M ≤ 1,000,000,000) www.acmicpc.net 사용언어 : C (C99) 알고리즘 : 수학, 사칙연산 C 코드 1. 문제 정리 2개의 정수를 공백을 사이에 두고 입력 받는 문제이다. c언어의 int형 정수의 특성을 이용하여 해결 한 문제이다. int형 정수는 3 / 2 = 1.5이지만 .5는 빼고 정수부분인 1만 출력 한다. 이 특성을 사용하여 예로 1 x 3 타일에 2칸짜리 타일을 넣는다면 3 / 2는 1만 나오기 때문에 int형 정수를 사용 해주면 된다. 또한범위가 (1 ≤ N, M ≤ 1,0..
백준 온라인 저지 / 16486번 운동장 한 바퀴 https://www.acmicpc.net/problem/16486 16486번: 운동장 한 바퀴 첫째 줄에 d1의 값이 주어진다. 둘째 줄에는 d2의 값이 주어진다. (d1, d2의 값은 100,000 이하의 양의 정수) www.acmicpc.net 사용언어 : C (C99) 알고리즘 : 수학, 기하학 C 코드 1. 문제 정리 두 개의 입력을 받아 계산하여 푸는 문제이다. 총 둘레는 (c의 가로 x 2) + (2 * 3.141592 * a의 반지름) 을 계산하면 간단하게 풀 수 있다. 원의 둘레는 2 * 3.141592 * 원의 반지름을 계산하면 나온다. 2. 완성 코드 #include int main(void) { double a, b; scanf("..