함수 인자 넘기기, 빠른 입출력, 코딩테스트 팁
J-Shine
바킹독님의 실전알고리즘 배우기 2강 듣고 요약
함수 인자 넘기기
답은 0, 10, 0이다.
int나 struct는 함수에 인자를 보낼 때 복사를 해서 보내기 때문이고, 배열은 주소를 보내기 때문이다.
(나는 2번을 틀려서 맴찢이었다.. 배열과 포인터에 관하여 다시 공부를 해야겠다.)
참조자(&)를 사용하면 더 깔끔하다.(참조자 복습하기)
vector 등 STL을 함수에 인자로 전달해도 복사가 되므로 주의한다.
위와 같은 경우는 vector의 원소를 전부 복사해야 하므로 시간 복잡도가 O(N)이 된다. 따라서 이 때도 참조자(&)를 이용하여 전달한다.
한 줄을 전부 입력받고 싶을 땐 getline()을 쓰는게 좋다.
빠른 입출력
빠른 입출력을 위하여 코테에선 무조건 ios_base::sync_with_stdio(0),cin_tie(0)를 쓴다.
네 안쓸게요
(이유: endl은 줄바꿈하고 출력버퍼를 비우는 것까지 포함이다. 출력버퍼를 비우는 작업이 속도가 느림)
대신 “\n” 쓰기
관련 문제 풀이
코딩테스트와 개발은 다르다
코테는 클린 코드를 작성하는게 목적이 아니고, 제한 시간 내에 바르게 정답을 구현하는 것이 목적이다.