일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- STUDYENGLISH
- swexpertacademy
- dfs
- 삼성
- 원서읽자
- 직무면접
- 쉬운 알고리즘 문제
- 알고리즘
- readingbook
- 프로그래머스
- sw expert academy
- sw expert
- 원서읽기
- nightroutine
- MySQL
- BFS
- englishbook
- 완전탐색
- 코딩테스트
- 백준
- 알고리즘 문제
- 원서
- PyQt
- SQL
- 코테 준비
- D4
- the midnight library
- English
- 코테
- 코테 대비
- Today
- Total
목록알고리즘/백준 (32)
시나브로
Solution 총감독관은 필수적이기 때문에 배치한다 이에 따른 answer값과 space(고사장별 응시자 수를 저장하는 vector 변수)값을 연산해준다. 이후 남은 응시자수를 C로 나눈 몫이 부감독관의 수이기 때문에 연산을 해준다 단, 여기서 유의점은 몫이 나눠어 떨어지지 않을 경우, 부감독관이 한명 더 필요하다는 것이다. Key Point answer 변수형태를 long long으로 해야한다. 시험장 개수가 1000000개이며, 시험장별로 최대 응시자 수도 1000000이기에 long long 변수형태를 이용해야된다. 이를 사용하지 않을 경우, 바로 틀렸습니다가 뜬다 유의하길. 또한, 총감독관의 수를 뺀 이후 응시자의 값이 음수가 될 수 있음을 유의하라. #include #include #inclu..
나는 크루스칼 알고리즘으로 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..