오늘 학원 풀타임 수업해가지고 (14~21시) ㅠㅠㅠ 너무 힘들다....
그래도 오늘 집와서 공부 조금했다.. 근데 머리가 안돌아간다..
오늘 한거
==> 백준 정렬 문제
10989
2751
풀었다
정렬 종류가 여러 종류가 있다.
오늘 알아낸거는
1. sort 함수 (c++내부에 있는 algorithm 안에 있다!!)
힙정렬 + 최악의 수 일시 다른 정렬로 보완까지 해주어 안정적이고 개사기라고 배웟다!
2. 카운팅정렬==계수 정렬
배열 1만개를 만든후
카운팅해버렸다..
하나 하나 모두 배열 안에다가 넣은 후
마지막에 1부터 1만개 까지 있는대로 탈탈 털어서 정렬하였다.
물론 수가 엄청 크다면 힘들지만
수가 적다면 그만큼 시간이 엄청 효율적인 정렬이다!!
느낀점은 정렬이라는게 각각의 상황마다 효율이 다르고, 속도도 다를 수 있다는 것이다!!!!
추가로 c++에서 입출력 시간 단축하는 법을 알아왔다
1.ios_base의 의미
원래 c++과 c는 동기화 되어있어서
cout 과 printf 등이 같이 사용이 가능했음
근데 하나만 사용할때에는 이것을 꺼줌으로써 오버헤드를 막아줌
(오버헤드(overhead)는 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등을 말한다.)
2.cin.tie 의 의미
원래 cin 과 cout이 서로 묶여있어서
cin 함과 동시에 cout이 버퍼가 비워짐
근데 그걸 안한다고 말해버려서 성능 향상 시킴
3.cout.tie의 의미
위와 마찬가지 보통 같이쓰임.
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
2. endl 대신 '\n'써주기
=> endl은 버퍼까지 옮기기를 자동으로 해줘가지고 시간이 더 걸린다.... 0.01초라도 아끼려면 endl 대신 '\n' 으로 ㄱㄱ
너무 졸려서 이만...
내일도 풀타임..ㅜ