Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- c++
- lob
- Python
- Sookmyung Information Security Study
- 드림핵
- BOJ Python
- c
- CSS
- Javascript
- 숙명여자대학교 정보보안동아리
- hackctf
- 머신러닝
- 풀이
- 생활코딩
- 기계학습
- siss
- HTML
- BOJ
- hackerrank
- 숙명여자대학교 정보보안 동아리
- SWEA
- 자료구조 복습
- 백준
- XSS Game
- PHP 웹페이지 만들기
- 웹페이지 만들기
- The Loard of BOF
- 파이썬
- C언어
- WarGame
Archives
- Today
- Total
혜랑's STORY
[HackerRank_C] Insertion Sort - Part 2 본문
자료구조 복습용 sorting 문제입니다.
- 문제
www.hackerrank.com/challenges/insertionsort2/problem
첫번째 원소가 정렬되어있다 가정하고 두번째 원소부터 삽입 정렬을 반복 후, 올바른 위치에 삽입될 때마다 배열을 인쇄한다.
- 풀이
// Complete the insertionSort2 function below.
void insertionSort2(int n, int arr_count, int* arr) {
for (int i = 1; i < n; i++) {
int key = arr[i];
for (int j = i; j >= 0; j--) {
if (arr[j - 1] > key)
arr[j] = arr[j - 1];
else {
arr[j] = key;
for (int k = 0; k < arr_count; k++)
printf("%d ", arr[k]);
printf("\n");
break;
}
}
}
}
- 비교할 값( i = 1~n-1)을 key에 저장한다.
- j - 1번째 자리부터 0번째 자리까지 만약 왼쪽에 있는 값이 더 크다면 오른쪽으로 값을 밀어낸다.
- 만약 왼쪽에 있는 값이 더 작다면 j번째 자리에 key 값으르 저장하고 배열을 프린트한다. 삽입할 자리를 찾았으므로 j for문을 탈출한다.
- 실행결과
통과!
'2021 SISS 21기 활동 > 1학기 C' 카테고리의 다른 글
[HackerRank_C] Tree: Height of a Binary Tree (0) | 2021.05.17 |
---|---|
[HackerRank_C] Tree: Inorder, Postorder Traversal (0) | 2021.05.11 |
[HackerRank_C] Quicksort1 - partition (0) | 2021.05.06 |
[HackerRank_C] Sherlock and Array (0) | 2021.04.11 |
[HackerRank_C] Insertion Sort - Part 1 (0) | 2021.03.28 |