카테고리 없음

24.3.13 공부기록

jjon-jonny 2024. 3. 14. 00:12

오늘 학원 풀타임 수업해가지고 (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' 으로 ㄱㄱ

 

 

너무 졸려서 이만...

내일도 풀타임..ㅜ