일지
-
알고리즘...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. 옮길 수 있는 볼의 색깔은 한 가지이다. 즉, 빨간색 볼을 처음에 옮겼으면 다음에도 빨간색 볼만 옮길 수 있다. 유사하게, 파란색 볼을 처음에 옮겼으면 다음에도 파란색 볼만 옮길 수 있다. 예를 들어, 처음에 볼이 에서..
-
알고리즘...13일지 2021. 6. 30. 19:41
버블 정렬 구현 배열 arr과 배열의 길이 n을 입력으로 받는 함수를 구현한다. BubbleSort.hpp #pragma once #include "../Common.hpp" /// /// 주어진 배열을 정렬한다. /// /// 정렬을 진행할 배열 /// 배열의 길이 /// 중간 결과 출력 여부 void BubbleSort(int arr[], int n, bool printData = false) { if (printData) { Common::PrintArray(arr, n); } for (int i = 1; i arr[j + 1]) { Common::Swap(arr, j, j + 1); } } i..
-
JUNGOL...80일지 2021. 6. 30. 08:34
Beginner_Coder/여러가지/볼 모으기(balls) 문제 빨간색 볼과 파란색 볼이 에서 보인 것처럼 일직선상에 섞여 놓여 있을때, 볼을 옮겨서 같은 색 볼끼리 인접하게 놓이도록 하려고 한다. 볼을 옮기는 규칙은 다음과 같다. 1. 바로 옆에 다른 색깔의 볼이 있으면 그 볼을 모두 뛰어 넘어 옮길 수 있다. 즉, 빨간색 볼은 옆에 있는 파란색 볼 무더기를 한 번에 뛰어 넘어 옮길 수 있다. 유사하게, 파란색 볼은 옆에 있는 빨간색 볼 무더기를 한 번에 뛰어 넘어 옮길 수 있다. 2. 옮길 수 있는 볼의 색깔은 한 가지이다. 즉, 빨간색 볼을 처음에 옮겼으면 다음에도 빨간색 볼만 옮길 수 있다. 유사하게, 파란색 볼을 처음에 옮겼으면 다음에도 파란색 볼만 옮길 수 있다. 예를 들어, 처음에 볼이 에서..
-
JUNGOL...79일지 2021. 6. 28. 22:39
Beginner_Coder/여러가지/볼 모으기(balls) 문제 빨간색 볼과 파란색 볼이 에서 보인 것처럼 일직선상에 섞여 놓여 있을때, 볼을 옮겨서 같은 색 볼끼리 인접하게 놓이도록 하려고 한다. 볼을 옮기는 규칙은 다음과 같다. 1. 바로 옆에 다른 색깔의 볼이 있으면 그 볼을 모두 뛰어 넘어 옮길 수 있다. 즉, 빨간색 볼은 옆에 있는 파란색 볼 무더기를 한 번에 뛰어 넘어 옮길 수 있다. 유사하게, 파란색 볼은 옆에 있는 빨간색 볼 무더기를 한 번에 뛰어 넘어 옮길 수 있다. 2. 옮길 수 있는 볼의 색깔은 한 가지이다. 즉, 빨간색 볼을 처음에 옮겼으면 다음에도 빨간색 볼만 옮길 수 있다. 유사하게, 파란색 볼을 처음에 옮겼으면 다음에도 파란색 볼만 옮길 수 있다. 예를 들어, 처음에 볼이 에서..
-
알고리즘...12일지 2021. 6. 28. 14:40
버블 정렬 선택 정렬과 비슷하게 가장 큰 원소를 가장 끝의 자리로 옮기는 정렬이다. 다만, 이동시키는 방식이 바로 오른쪽 값과 비교하여 교체해주는 것으로 선택 정렬과 차이를 갖는다. 버블 정렬 알고리즘 배열 A[1...n]에 대해 A[1] > A[2] 인 경우 A[1]과 A[2]의 자리를 바꾼다. 이 과정을 [1...n]에 대하여 반복한다. 이를 수도 코드로 나타내면 다음과 같다. 버블 정렬 알고리즘 BubbleSort(A[], n) { for last ← n downto 2 { for i ← 1 to last - 1 { if (A[i] > A[i+1]) then { A[i] ↔ A[i+1] } } } } 더보기 참고문헌 한빛아카데미.문병로.(2016.07.24).쉽게 배우는 알고리즘
-
머큐리얼...4일지 2021. 6. 25. 15:42
유용한 예약어 branch(string or set) 특정 브랜치의 리비전을 가져온다. merge() 머지 리비전을 가져온다. max(set) 주어진 리비전 세트 중 가장 큰 번호를 가진 리비전을 가져온다. min(set) 주어진 리비전 세트 중 가장 작은 번호를 가진 리비전을 가져온다. origin([set]) 주어진 세트에서 다른 브랜치로 그래프트 한 리비전을 가져온다. destination([set]) 주어진 세트에서 다른 브랜치에서 그래프트 된 리비전을 가져온다. rev(number) 번호에 해당하는 리비전을 가져온다. 더보기 참고문헌 Mercurial.repo.help.hg-revsets
-
JUNGOL...78일지 2021. 6. 25. 14:51
Beginner_Coder/여러가지/참외밭 문제 시골에 있는 태양이의 삼촌 댁에는 커다란 참외밭이 있다. 문득 태양이는 이 밭에서 자라는 참외가 도대체 몇 개나 되는지 궁금해졌다. 어떻게 알아낼 수 있는지 골똘히 생각하다가 드디어 좋은 아이디어가 떠올랐다. 유레카! 1㎡의 넓이에 자라는 참외 개수를 헤아린 다음, 참외밭의 넓이를 구하면 비례식을 이용하여 참외의 총개수를 구할 수 있다. 1㎡의 넓이에 자라는 참외의 개수는 헤아렸고, 이제 참외밭의 넓이만 구하면 된다. 참외밭은 ㄱ-자 모양이거나 ㄱ-자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형이다. 다행히도 밭의 경계(육각형의 변)는 모두 동서 방향이거나 남북 방향이었다. 밭의 한 모퉁이에서 출발하여 밭의 둘레를 돌면서 밭경계..