일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 원서읽기
- D4
- 삼성
- sw expert academy
- 코테
- nightroutine
- English
- MySQL
- 코테 준비
- 백준
- 알고리즘 문제
- STUDYENGLISH
- englishbook
- SQL
- 코테 대비
- 완전탐색
- PyQt
- 알고리즘
- 코딩테스트
- swexpertacademy
- 원서읽자
- 프로그래머스
- dfs
- readingbook
- BFS
- the midnight library
- 원서
- 쉬운 알고리즘 문제
- sw expert
- 직무면접
- Today
- Total
목록알고리즘 (105)
시나브로
#include #include using namespace std; int main(void) { int tc = 0; cin >> tc; for (int i = 0; i > s_l; cin >> a; cin >> b; int count = 0; for (int j = 0; j < s_l; j++) { if (a[j] == b[j]) count++; } cout
나는 크루스칼 알고리즘으로 mst를 구현하였다. 하지만, 이 소스에서는 개선점이 있다. union-find 알고리즘을 사용해서 좀더 효율적으로 구현이 가능할 것 같다. #include #include using namespace std; #define MAX_NUM 100010 int input[MAX_NUM][3]; int num; int n = 0; int m = 0; void swap(int i ,int j) { int temp[3] = { input[i][0],input[i][1], input[i][2] }; input[i][0] = input[j][0]; input[i][1] = input[j][1]; input[i][2] = input[j][2]; input[j][0] = temp[0]; in..
정렬을 이용하여 단어를 정렬하는 문제였다. 정렬을 이용하는 가장 쉬운 문제였지만, 이 문제의 경우 퀵정렬을 사용할 경우 시간초과가 뜬다. 이에 유의해서 merge sort를 사용하였다. 시간은 딱맞았다. 하지만, merge sort의 경우, 배열을 2배를 사용했기에 공간효율이 좋지 못한 것 같다. -런타임에러 : 배열의 크기를 선언할 때, 0을 하나 누락했었다. - 시간초과 : 알고리즘을 수정하였다. quick -> merge sort로 #include #include using namespace std; string list[20001]; void swap(int i, int j) { string temp = list[i]; list[i] = list[j]; list[j] = temp; } int ch..
만약 해싱을 공부하고자 하면 이 문제를 필수적으로 풀어보길 바란다. 해싱의 기본개념도 알 수 있고 간단한 구현도 가능하다. 구현의 경우, 문제를 그대로 구현하면 된다. 여기서 31은 영어 최대 숫자인 26보다 큰 소수이기 때문에 설정하였다. (이 숫자는 소수를 사용하는 것이 좋을 것 같다.) 또한, 1234567891도 소수이다. #include int main(void) { freopen("inp.inp", "r", stdin); freopen("out.out", "w", stdout); char buffer = 0; int number = 0; scanf("%d", &number); scanf("%c", &buffer); long long sum = 0; int box = 0; long long li..