분류 전체보기
-
삽입 정렬 구현 및 테스트프로그래밍 기초/알고리즘 2021. 7. 5. 11:31
삽입 정렬 선택 정렬과 버블 정렬과 달리 1개짜리 배열로 시작하여 크기를 하나씩 늘려나가는 방식으로 정렬을 진행한다. 삽입 정렬 알고리즘 배열 A[1...n]에 대해 A[n] < A[i] 인 i를 찾아 A[n]과 A[i]의 자리를 바꾼다. 이 과정을 [1...n]에 대하여 반복한다. 이를 수도 코드로 나타내면 다음과 같다. 삽입 정렬 알고리즘 InsertionSort(A[], n) { for i ← 2 to n { A[1...i]의 적당한 자리에 A[n]을 삽입한다 } } ※ 삽입 정렬 알고리즘의 비교 회수는 n ~ n² 사이가 되며 시간 복잡도는 최선의 경우 Ο(n), 최악의 경우 Ο(n²)이 된다. 삽입 정렬 구현 배열 arr과 배열의 길이 n을 입력으로 받는 함수를 구현한다. InsertionSor..
-
알고리즘...15일지 2021. 7. 4. 17:42
삽입 정렬 구현 배열 arr과 배열의 길이 n을 입력으로 받는 함수를 구현한다. InsertionSort.hpp #pragma once #include "../Common.hpp" /// /// 주어진 배열을 정렬한다. /// /// 정렬을 진행할 배열 /// 배열의 길이 /// 중간 결과 출력 여부 void InsertionSort(int arr[], int n, bool printData = false) { if (printData) { Common::PrintArray(arr, n); } for (int i = 1; i = 0; j--) { if (arr[curIdx] < arr[j]) { Common::S..
-
JUNGOL...84일지 2021. 7. 4. 10:18
Beginner_Coder/자료처리/선택정렬 문제 선택 정렬(selection sort)이란 내부정렬 알고리즘의 하나로 다음 순서대로 실행하여 정렬을 한다. 1. 주어진 수열 중에 최소값(같은 값이 여러 개 있는 경우 처음 값)을 찾는다. 2. 찾은 최소값을 맨 앞의 값과 자리를 바꾼다. 3. 맨 앞의 값을 뺀 나머지 수열을 같은 방법으로 전체 개수-1번 반복 실행한다. n개의 주어진 수열을 위와 같은 방법으로 정렬한다. 수열이 주어지면 선택정렬의 과정을 한 단계씩 출력한다. 입력 형식 첫줄에 수열의 길이 N(4≤N≤100)이 주어진다. 두 번째 줄에 N개의 0이상 100이하의 정수가 주어진다. 출력 형식 처음 상태를 제외하고 정렬과정의 각 단계별 결과를 "출력형식"과 같이 출력한다. 입력 예 5 6 ..
-
JUNGOL...83일지 2021. 7. 3. 14:15
Beginner_Coder/자료처리/큐(queue) 문제 큐는 먼저 들어온 데이터가 먼저 출력된다. 이러한 구조를 선입선출(FIFO - First In First Out)이라고 한다. 이러한 큐 자료구조는 보통 우리의 생활에서는 매우 일상적인 자료구조이다. 큐 자료구조의 형태를 가장 흔히 볼 수 있는 게 “줄서기”가 될 것이다. 은행 창구에서 줄을 서거나, 버스를 기다리기 위해서 줄을 설 경우 가장 먼저 줄을 선 사람이 가장 먼저 은행 업무를 처리하거나, 버스를 타게 된다.(새치기 하는 경우는 생각하지 말자) 그림과 같은 큐 자료구조를 설계하고, 처리조건에 맞는 출력을 하시오. ≪처리조건≫ 1. 주어지는 명령은 다음의 3가지이다. 2. "i a"는 a라는 수를 큐에 넣는다. 이때, a는 10,000 이하..
-
JUNGOL...82일지 2021. 7. 2. 10:16
Beginner_Coder/자료쳐리/스택 (stack) 문제 Stack은 "더미"란 뜻을 가진다. 책 더미, 신문 더미 등에 사용하는 단어이다. 책 더미를 예로 들어 보자. 책 더미를 쌓았다고 했을 때, 이 책 더미에서 책을 가져오는 가장 정상적인 방법은 제일 위에 있는 책을 가져오는 방식이다. 다시 말하면 가장 먼저 들어간 책은 가장 나중에 꺼낼 수 있을 것이다. 이런식으로 자료가 가장 밑에 쌓이고(입력). 자료를 가져올 때(출력)는 가장 위(최근)의 자료를 가져오는 자료구조를 Stack하고 한다. 이러한 Stack의 특징 때문에 흔히 "FILO(First-In-Last-Out : 선입후출)" 혹은 "LIFO(Last-In-First-Out : 후입선출)"라고 한다. 그림과 같이 Stack을 설계하고 ..
-
알고리즘...14일지 2021. 7. 2. 10:13
삽입 정렬 선택 정렬과 버블 정렬과 달리 1개짜리 배열로 시작하여 크기를 하나씩 늘려나가는 방식으로 정렬을 진행한다. 삽입 정렬 알고리즘 배열 A[1...n]에 대해 A[n] < A[i] 인 i를 찾아 A[n]과 A[i]의 자리를 바꾼다. 이 과정을 [1...n]에 대하여 반복한다. 이를 수도 코드로 나타내면 다음과 같다. 삽입 정렬 알고리즘 InsertionSort(A[], n) { for i ← 2 to n { A[1...i]의 적당한 자리에 A[n]을 삽입한다 } } 더보기 참고문헌 한빛아카데미.문병로.(2016.07.24).쉽게 배우는 알고리즘
-
JUNGOL...81일지 2021. 7. 1. 22:10
Beginner_Coder/여러가지/볼 모으기(balls) 문제 빨간색 볼과 파란색 볼이 에서 보인 것처럼 일직선상에 섞여 놓여 있을때, 볼을 옮겨서 같은 색 볼끼리 인접하게 놓이도록 하려고 한다. 볼을 옮기는 규칙은 다음과 같다. 1. 바로 옆에 다른 색깔의 볼이 있으면 그 볼을 모두 뛰어 넘어 옮길 수 있다. 즉, 빨간색 볼은 옆에 있는 파란색 볼 무더기를 한 번에 뛰어 넘어 옮길 수 있다. 유사하게, 파란색 볼은 옆에 있는 빨간색 볼 무더기를 한 번에 뛰어 넘어 옮길 수 있다. 2. 옮길 수 있는 볼의 색깔은 한 가지이다. 즉, 빨간색 볼을 처음에 옮겼으면 다음에도 빨간색 볼만 옮길 수 있다. 유사하게, 파란색 볼을 처음에 옮겼으면 다음에도 파란색 볼만 옮길 수 있다. 예를 들어, 처음에 볼이 에서..
-
머큐리얼 리비전 세트 특정 방법개발 도구/형상관리 도구 (SCM) 2021. 7. 1. 21:48
hg 커맨드를 위한 리비전 특정 방법 커맨드 라인을 통해 hg 커맨드를 사용할 때 타깃 리비전을 적절하게 설정하는 방법을 설명한다. 리비전 특정 방법 정수 숫자 양수 리비전 번호 음수 최신 리비전 기준 오프셋 문자열 40 자리 16진수 문자열 특정 리비전을 브랜치에 상관없이 유일하게 식별할 수 있는 식별자 40 자리가 안 되는 16진수 문자열 식별자의 뒷부분을 일부 잘라내도 유일하게 식별할 수 있을 때 사용 가능한 단축 식별자 이외의 문자열 북마크, 태그 또는 브랜치 명으로 사용되며 ":"를 포함해서는 안됨 예약된 문자열 tip 가장 최신 브랜치를 나타냄 null 빈 레포지토리의 리비전을 나타내는 것으로 0번째 리비전의 부모를 나타냄 . 현재 작업 중인 레포지토리의 부모를 나타내며 최상위 브랜치인 경우 ..