목록[c언어&c++] 알고리즘 공부 (62)
아무거나 내꺼 공부할래
▣ 문제 N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 삽입정렬입니다. ▣ 입력설명 - 첫 번째 줄에 자연수 N(1 temp) num[j + 1] = num[j]; else break; } num[j + 1] = temp; } for (i = 0; i < n; i++) { printf("%d ", num[i]); } return 0; } 삽입 정렬이 선택, 버블, 삽입 정렬중에서 가장 문제에서 출제 빈도가 높다. 삽입 정렬은 i번째의 수를 temp에 저장시키고 뒤에서 앞으로 숫자를 비교해가면서 정렬하는 방법이다. 삽입 정렬의 경우 평균적인 시간 복잡도는 O(N^2)이지만 최적의 경우에는 O(N)이다.
▣ 문제 N개의 정수가 입력되면 당신은 입력된 값을 정렬해야 한다. 음의 정수는 앞쪽에 양의정수는 뒷쪽에 있어야 한다. 또한 양의정수와 음의정수의 순서에는 변함이 없어야 한다. ▣ 입력설명 - 첫 번째 줄에 정수 N(5 0 && num[j + 1] < 0) { temp = num[j]; num[j] = num[j + 1]; num[j + 1] = temp; } } } for (i = 0; i < n; i++) printf("%d ", num[i]); return 0; } 버블 정렬의 개념을 이용해서 num[j]가 양수 num[j+1]이 음수일때마다 두 수의 위치를 바꿔주는 방식으로 구현했다. . 내가 직접 한 코드는 배열중에서 음수가 있으면 해당 지점에서 계속해서 앞으로 옮기는 방식으로 구현했다. 기본적..
▣ 문제 N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 버블정렬입니다. ▣ 입력설명 - 첫 번째 줄에 자연수 N(1
▣ 문제 N명의 수학성적이 주어지면 그 중 3등을 한 수학성적을 출력하는 프로그램을 작성하세요. 만약 학생의 점수가 100점이 3명, 99점이 2명, 98점이 5명, 97점이 3명 이런식으로 점수가 분포되면 1등은 3명이며, 2등은 2명이며 3등은 5명이 되어 98점이 3등을 한 점수가 됩니다. ▣ 입력설명 - 첫 번째 줄에 자연수 N(1
▣ 문제 N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다. ▣ 입력설명 - 첫 번째 줄에 자연수 N(1
▣ 문제 탄소(C)와 수소(H)로만 이루어진 화합물을 탄화수소라고 합니다. 탄소(C) 한 개의 질량은 12g, 수소(H) 한 개의 질량은 1g입니다. 에틸렌(C2H4)의 질량은 12*2+1*4=28g입니다. 메탄(CH4)의 질량은 12*1+1*4=16g입니다. 탄화수소식이 주어지면 해당 화합물의 질량을 구하는 프로그램을 작성하세요. ▣ 입력설명 - 첫 줄에 탄화수소식이 주어집니다. 식의 형태는 CaHb 형태이며 (1
▣ 문제 자연수 N이 입력되면 1부터 N까지의 자연수를 종이에 적을 때 각 숫자 중 3의 개수가 몇 개 있는지 구하려고 합니다. 예를 들어 1부터 15까지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5으로 3의 개수는 2개입니다. 자연수 N이 입력되면 1부터 N까지 숫자를 적을 때, 3의 개수가 몇 개인지 구하여 출력하는 프로그램을 작성하세요. ▣ 입력설명 - 첫 줄에 자연수의 개수 N(3