아래의 이미지는 7개의 정수를 선택 정렬을 이용하여 정렬을 하고 있는 모습니다. 가장 첫 번째자리 8이 있는 자리에 7개의 배열을 검사하여 제일 작은 녀석을 8과 바꿉니다. 그렇게 되면 우선 1번쨰 자리에는 가장 작은 녀석이니 배제하고 2번째에 들어올 녀석을 다시 6개의 배열을 검사하여 제일 작은 녀석과 2번째 자리에 있는 4와 바꾸는 식으로 정렬을 하게 됩니다. 시간 복잡도는 O(n²) 입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 void SelectionSort( int *array, int num ) { int idx = 0; for( int i=0; i
지최찾기 문제 입니다. 첫 번 째 입력엔 각각 행과 열을 나타나는 개수를 넣습니다. 입력시 0보다 크고 100보다 작아야 하며, 지뢰는 *, 공백 칸은 . 을 넣어야 합니다. 그리고 역시나 0이 입력될 시 프로그램이 종료되도록 처리를 해야 합니다. 근데 역시나 1번째 문제에와 같이 채점 봇이 영 지랄이라 .. 하.. 아직 초반대 문제라 쉬워서 푸는 건 몇 분 안걸리는데 문제는 채점 봇을 통과하기가 힘들어서 1번째도 이것저것 뭐가 문제인지 찾고 고치는 데만 몇 시간ㅡ_ㅡ.. 정말 문제를 잘 봐야하고 여러 조건에 만족이 되어야 하다보니.. 너무 들이는 시간에 비해 의미가 없는 듯 해서 다음에는 그냥 문제만 푸는 형태로 해야 될듯합니다. 아오. SyntaxHighlighter 왜 이러지 아래 코드가 반 이상 ..
정수 n이 짝수면 2로나누고, 홀수면 3을 곱한 다음 1을 더한다. 이렇게 해서 n=1이 될 때까지 작업을 반복한다. 예) n=22 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 이 가설은 1,000,000까지의 정수에 대해서는 참이다. n이라는 값이 입력되고, 1이 나올 떄까지 만들어 진 수의 갯수를 사이클 길이라고 할때 22의 사이클 길이는 16이다. 이떄 i,j라는 두개의 수가 주어 졌을 때 i,j 두 수를 포함한 사이의 모든 수의 최대 사이클 길이를 구하라. 입력은 i, j 한쌍이며 모든 정수는 1,000,000보다 작고 0보다 크다. 입력 예) 1 10 100 200 201 210 900 1000 출력 예 1 10 20 100 200 125 201 210 89 90..