전체 글 (131) 썸네일형 리스트형 35. Special Sort(구글 인터뷰) (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include using namespace std; int main() { int n; scanf("%d", &n); vector num(n, 0); for(int i = 0; i 0 && num[j+1] < 0) { temp = num[j+1]; num[j+1] = num[j]; num[j] = temp; } } } for(int i = 0; i < n; i++) printf("%d ", num[i]); return 0; } 1. 주의할 점은 음수가 왼쪽, 양수가 오른쪽.. 34. 버블정렬 (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★☆☆☆☆ #include #include using namespace std; int main() { int n; scanf("%d", &n); vector num(n, 0); for(int i = 0; i num[j+1]) { temp = num[j]; num[j] = num[j+1]; num[j+1] = temp; } } } for(int i = 0; i < n; i++) printf("%d ", num[i]); return 0; } 1. 버블정렬이란? : 맨 왼쪽 수부터 이웃한.. 33. 3등의 성적은? (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★☆☆☆☆ #include #include #include using namespace std; int main() { int n; scanf("%d", &n); vector num(n, 0); for(int i = 0; i num[i]) { count++; temp = num[i]; } } return 0; } 1. 헤더의 sort() 를 응용(내림차순으로 정.. 32. 선택정렬 (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★☆☆☆☆ #include #include #include using namespace std; int main() { int n; scanf("%d", &n); vector num(n, 0); for(int i = 0; i < num.size(); i++) scanf("%d", &num[i]); sort(num.begin(), num.end()); for(int i = 0; i < num.size(); i++) printf("%d ", num[i]); return 0; } 1. 헤더의 sort(s_idx, l_idx) 활용 s_idx부터 l_idx까지 오름차순으로 정렬한다. 31. 탄화수소 질량 (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include #include using namespace std; int main() { string form; getline(cin, form); string count = ""; int c = 12; int h = 1; int cCount = 0; int hCount = 0; for(int i = 0; i < form.length(); i++) { if(form[i] == 'C') { if(form[i+1] == 'H') { cCount = 1; continue;; } else { for(int j = i+1; form[j] != 'H'; j++) { count += form[j]; } cCount = stoi(count); count.clear(); } } else if(form.. 30. 3의 개수는?(large) (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★★★☆ #include #include using namespace std; int main() { int n; scanf("%d", &n); int lt = 1; int k = 1; int rt, cur = 0; int count = 0; while(lt != 0) { lt = n / (k * 10); cur = (n / k) % 10; rt = n % k; if(cur > 3) { count += (lt+1) * k; } else if(cur == 3) { count += (lt * k) + (rt + 1); } else { count += lt * k; } k *= 10; } printf("%d", count); return 0; } 1. 포인터를 활용하여 풀면 아주 쉽게 풀 수 있는 문제이다. 포인터는 .. 29. 3의 개수는?(small) (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★☆☆☆☆ #include #include using namespace std; int main() { int n; scanf("%d", &n); vector count(10, 0); for(int i = 1; i = 1) { idx = x % 10; count[idx]++; x /= 10; } } printf("%d", count[3]); return 0; } 1. 각 숫자마다 1의 자리수 추출 후 그 숫자 사용횟수를 count++ 한다. 2. 자릿수를 줄여가며 반복한다. 3. 3의 사용횟수를 출력한다. 28. N!에서 0의 개 (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★★☆☆☆ #include #include using namespace std; int main() { int n; scanf("%d", &n); vector prime(n+1, 0); vector count(n+1, 0); int idx = 1; for(int i = 2; i 1) { if(x % prime[_idx] == 0) { count[_idx]++; x /= prime[_idx]; } else _idx++; } } if(count[1] >= count[3]) printf("%d", count[3]); else printf("%d", count[1]); return 0; } 1. 27번 문제인 소수표현방법과 같은 방법이다. 2. 같은 방법으로 실행한 뒤, 연속되는 0의 개수를 찾을 때 2와 5의 사용횟수를.. 이전 1 ··· 10 11 12 13 14 15 16 17 다음