바킹독님의 강의를 참고하였습니다.
https://blog.encrypted.gg/category/강좌/실전%20알고리즘
'강좌/실전 알고리즘' 카테고리의 글 목록
blog.encrypted.gg
+ 해당 카테고리엔 테스트에 필요한 내용만 정리할 예정.
+ 기록해두고 싶은 부분만 정리해 둠.
표준 입출력
코딩테스트에서 입력/출력은 표준 입출력을 사용한다.
C에서는 scanf/printf , C++에서는 cin/cout을 사용하는데
scanf/printf 는 C++ string을 처리할 수 없다.(char* 로 문자열을 다룸, C++ string이 월등하게 편함.)
=> scanf/printf를 사용하면서도 C++ string을 활용하고 싶으면 char*로 입력을 받고 string으로 형변환을 해서 c_str() 메서드를 이용해 출력.
scanf("%s" ,a);
printf("a is %s\n", a);
("hi hello" 를 입력받았을 때 "a is hi"와 같이 출력됨.)
scanf를 쓰든 cin을 쓰든 주의해야 할 것이 있는데, scanf와 cin 모두 공백을 포함한 문자열을 입력받을 때 굉장히 껄끄럽다.
둘 다 공백 앞까지만 입력을 받기 때문.
=> getline을 사용하자.
string s;
getline(cin, s);
cout << s;
ios::sync_with_stdio(0)
scanf/printf 에서는 신경을 안써도 되는데, cin/cout 에서는 꼭 주의할 게 있다.
scanf/printf 와 다르게 cin/cout은 입출력으로 인한 시간초과를 막기 위해서,
ios::sync_with_stdio(0), cin.tie(0)라는 두 명령을 실행시켜야 함.
이걸 안 해두면 입/출력의 양이 많을 때 시간초과가 날 수 있다. (두 명령어의 뜻은 구글링 ㄱㄱ)
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
❗️위 명령어를 사용할 땐 C의 입출력을 쓰지 않도록 조심!
'Problem Solving > Algorithm' 카테고리의 다른 글
[Algorithm] 재귀 (0) | 2023.08.30 |
---|---|
[Algorithm] DFS (0) | 2023.08.27 |
[Algorithm] BFS (0) | 2023.08.26 |
[Algorithm] 연결리스트 (0) | 2023.08.26 |
[PS] 시간, 공간복잡도 (0) | 2023.08.26 |