본문 바로가기

Programming175

[프로그래머스 Lv.2] 124 나라의 숫자 / c++ [출처] https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr ▷▷ 문제 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. ▶▶ KEY 1. 뭔가 n진수 표현하는 유형 같으므로 n으로 나눈 몫과 나머지를 이용할 것이라 생각 2. 규칙성을 찾기 위해 일단 충분히 나열해보기 3. 규칙 발견.. 2022. 5. 22.
[c++ 줍줍] switch 문 ▷ switch 문 int n; string end; swith(n) { case 0: end = "4"; break; case 1: end = "1"; break; case 2: end = "2"; break; } ▷ 기본적으로 switch 문은 모든 case를 다 돌기 때문에, 그럴 필요 없으면 case마다 break; 작성 2022. 5. 21.
[C++ 기초] c++ 프로그램 구성, namespace 1. c++ 프로그램의 구성 #include int main() { std::cout 2022. 5. 20.
퀵 정렬 (Quick Sort) 1. 퀵 정렬▶ 분할정복 알고리즘input 배열을 반복적으로 분할해서 계산하는 알고리즘이며,  평균 시간복잡도가 O(N*logN) 특정한 값 a을 기준으로 a보다 큰 수, a보다 작은 수를 나누자 ! ※ 특정한 값 a = pivot※ 일반적으로 첫번째 원소를 pivot 값으로 설정한다.   2. 퀵 정렬 예제ex )  3  7  8  1  5  9  6  10  2  4  오름차순 정리하시오. #include int number = 10;int data[10] = { 1, 10, 5, 8, 7, 6, 4, 3, 2, 9 };void show() { for (int i = 0; i = end) { // 원소가 1개인 경우 return; } int key = start; // k.. 2022. 5. 9.
삽입 정렬 (Insertion Sort) 1. 삽입 정렬 각 숫자를 적절한 위치에 삽입하자 ! ※ 한번 수행할 때마다 [앞] 정렬된 부분의 원소 수가 1개 증가, [뒤] 정렬 안된 부분의 원소 수는 1개 감소됨 반복해서 수행하면 결국 [뒤] 정렬 안된 부분에는 아무 원소도 남지 않고 모두 정렬됨 ※ 선택/버블 vs. 삽입 ▶ 선택, 버블: 이미 알맞게 정렬되어 있더라도 차례가 되면 정렬당함 (위치 바꾸는 과정 거침) : 비효율적 ▶ 삽입: 필요할때만 위치를 바꿈 : 효율적 이번 주자 앞에 있는 애들은 다 이미 알맞은 위치에 정렬되어 있는 상태이므로 다시 정렬할 필요 없음 2. 삽입 정렬 예제 ex ) 1 10 5 8 7 6 4 3 2 9 오름차순 정리하시오. #include int main(void) { int a[] = { 1, 10, 5, .. 2022. 5. 6.
버블 정렬 (Bubble Sort) 1. 버블 정렬 2개씩 비교해서 더 작은 것을 앞으로 자리바꿈 * 세로로 그려 보면, 가장 작은 것이 거품처럼 위로 (=맨 앞으로) 올라가는 형태 [ Algorithm ] 1. for pass = 1 to n-1 2. for i = 1 to n-pass 3. if (A[i-1] > A[i]) // 위의 원소가 아래의 원소보다 크면 4. A[i-1] ↔ A[i] // 자리바꿈 5. return A 2. 버블 정렬 예제 ex ) 1 10 5 8 7 6 4 3 2 9 오름차순 정리하시오. #include int main(void) { int a[] = { 1, 10, 5, 8, 7, 6, 4, 3, 2, 9 }; int n = sizeof(a) / sizeof(int); int temp; for (int i .. 2022. 5. 4.
선택 정렬 (Selection Sort) 1. 선택 정렬 가장 작은 것을 맨 앞으로 가져오자 ! 2. 선택 정렬 예제 ex ) 1 10 5 8 7 6 4 3 2 9 오름차순 정리하시오. #include int main(void) { int a[] = { 1, 10, 5, 8, 7, 6, 4, 3, 2, 9 }; int min, minIdx, temp; int n = sizeof(a) / sizeof(int); for (int i = 0; i < n-1; i++) { min = a[i]; minIdx = i; for (int j = i + 1; j < n; j++) { if (a[j] < min) { min = a[j]; minIdx = j; } } temp = a[i]; a[i] = a[minIdx]; a[minIdx] = temp; } for.. 2022. 5. 3.
정렬 알고리즘 1. 정렬 알고리즘 임의의 순서로 제공된 수들을 크기순으로 정렬하는 알고리즘 다양한 종류가 있음 알고리즘의 효율성 차이를 잘 나타냄 2. 정렬 알고리즘의 종류 ■ 선택 정렬 (Selection Sort) https://hyeminseo.tistory.com/61?category=1072199 ■ 버블 정렬 (Bubble Sort) https://hyeminseo.tistory.com/63?category=1072199 ■ 삽입 정렬 (Insertion Sort) https://hyeminseo.tistory.com/64?category=1072199 ■ 퀵 정렬 (Quick Sort) https://hyeminseo.tistory.com/65?category=1072199​ ■ 병합 정렬 (Merge S.. 2022. 5. 3.
[Github] add -A opensdf 에러 해결 ▶▶ 문제상황 알고리즘 공부를 시작하면서, 문제 풀이 코드를 깃허브에 업로드하고자 하였다. repository를 만들고, remote도 연결하고 add -A를 하려 했는데, 아래와 같은 에러가 뜨면서 add가 되지 않음 open("파일명.opensdf"):Permission denied, unable to index file 파일명.opensdf ▷▷ 해결 방법 아래의 블로그에서 동일한 에러를 해결한 기록이 있길래, 같은 방식으로 시도하여 해결하였다. visual studio / Tools / Options / Text Editor / C/C++ / Advanced / Browsing Database Fallback 1. Always User Fallback Location : True로 2. Do No.. 2022. 5. 3.