알고리즘 풀면서 시간초과에 대해 많이 고려해봤을 것이다.값들이 약 10만 이상이 되면 시간을 많이 고려해야한다.이때 cin과 scanf 즉, 입출력에서도 시간차이가 난다.편리함 때문에 cin, cout을 많이 썼지만 이는 느리다. 사진 출처 : https://algospot.com/forum/read/2496/ 코드에 ios_base :: sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); 위와 같이 쓰면 속도가 향상 되지만 추천하지 않는다. 즉, 알고리즘 문제를 풀때는 C 표준입출력 함수들을 사용하는 것이 좋다. 작성자 : 히더
알고리즘 문제를 풀때 초기화가 필요한 경우가 많다. 이때 memset 또는 fill을 자주 사용한다. memset은 를 선언하고 사용한다.이때 1바이트를 단위로 초기화를 하므로 bool이나 char에 많이 쓴다.int형일때는 1바이트를 넘으므로 0으로 초기화 할 때만 쓴다.고차원 배열도 한줄이면 초기화 가능하다. ex) arr배열이 있을 때, memset(배열이름,초기화 값,배열크기); memset(arr,0,sizeof(arr)); fill은 를 선언하고 사용한다.memset과 다르게 데이터 형 관계없이 초기화 가능하다.고차원 배열을 초기화 시에는 for문을 돌려야 한다. ex) arr 배열이 있을 때fill(시작위치, 끝나는 위치+1, 초기화 값);1차원 : fill(arr,arr+N,0);2차원 :..
전역변수로 배열의 크기를 선언하는 경우가 많다. 문제의 최대값에 의해 배열 크기가 달라질 것이다. 이때 최대 크기 때문에 풀이가 달라지는 경우가 많다. char 배열 최대 크기 : 약 백만문제에서 최대 범위가 백만까지 주어질 경우 사용 가능 int 배열 최대 크기 : 약 이십오만문제에서 최대 범위가 이십오만까지 주어질 경우 사용 가능 vector의 push_back 최대 크기 : 약 십억 문제에서 최대 범위가 십억까지 주어질 경우 사용 가능 최대 범위가 백만 이상이 된다면 전역변수로 최대 크기를 설정하기 보다는 동적할당이나 다른 방법의 알고리즘을 짜는 것이 나은 것 같다. 작성자 : 히더
- Total
- Today
- Yesterday
- SWEA
- DFS
- 시간 복잡도
- 역량 테스트
- 게리맨더링 2
- 입출력
- scanf
- 팁
- 새로운 게임 2
- 2018 카카오 블라인드 채용
- 17140
- 알고리즘
- 2018 KAKAO BLIND RECRUITMENT
- boj
- 17144
- 17142
- 17837
- hackerrank
- 17779
- string
- DP
- 17143
- 백준
- STL
- 연구소 3
- SW Expert Academy
- 삼성
- 이차원 배열과 연산
- 미세먼지 안녕!
- 트렌드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |