※ (링크) 바킹독 유튜브 영상을 통해
학습한 내용을 정리한 것입니다.
본인은 JAVA를 활용해 학습하였습니다.
비상업적 목적이며, 개인 복습을 위해 업로드한 글임을 다시 한 번 더 이야기드립니다.
본문의 모든 내용의 출처는 아래 명시된 링크와 같습니다.
[목차] STL과 함수 인자, 표준 입출력, 코드 작성 팁
출처: blog.encrypted.gg/923?category=773649
STL(Standard Template Library)
자바에서의 STL은 아래 링크에서 학습하면 좋을듯 합니다.
참조자(Reference)와 함수인자
C에서 STL은 함수 인자로 보낼경우 복사본을 만들어 넘기기에, 다른 함수에서 변경된 건은 원본에 영향을 주지 않습니다.
하지만 값을 복사하지 않고 값을 변경하는 기능을 수행하고 싶은 경우 참조자를 이용하면 됩니다!
위 경우 참조주소만 복사되기에 시간복잡도를 낮추어 원하는 기능을 수행할 수 있습니다.
JAVA의 경우 new연산자로 생성되는 Reference type의 함수는 Heap 영역에 생성되어 같은 주소를 공유합니다. 그렇기에 다른 함수에서 변경될 경우, 원본에도 영향을 줍니다.
표준 입출력
코딩테스트에서도 마찬가지로 표준 입/출력을 사용합니다. JAVA의 경우 Scanner 혹은 BufferedReader를 활용합니다. 이 둘을 비교하는 포스팅은 추후 다룰 예정입니다.
684m는 Scanner를 이용해 코드를 작성한 것이며, 352ms는 BufferedReader를 이용해 갖성한 것입니다.
둘의 차이를 간단하게 이야기하자면, 실행 속도에 차이가 크다는 것입니다. Scanner의 경우 처리 속도가 느린편이며, BufferedReader의 경우 처리 속도가 빠른 편입니다. 상세한 비교 내용은 앞서 이야기드렸듯 추후 깊게 학습해 추가하겠습니다.
출력도 마찬가지입니다. System.out.println( ) 보다는 BufferedWriter가 빠른데요. 마찬가지로 추후 깊게 학습해 추가하겠습니다.
참고로 코딩테스트 문제에서 채점할 경우, 입출력이 혼동되어 있어도 채점에 영향을 주지 않습니다. 즉, 어떻게 입력되고 출력되든 정답에 맞게 출력되면 된다는 이야기입니다.
코드 작성팁
- 코딩테스트와 개발은 다릅니다!
백준 10871문제를 보면 이해가 빠를 것입니다.
중요한 것은 내가 헷갈리지 않는 범위 안에서 코드를 짧게 작성하는 것이 필요합니다. 코딩테스트는 어떻게해서든 제한시간 내에 정답을 받는 것이 목적입니다. 그렇기에 내가 빠르게 짤 수 있는 방식으로 빠르게 작성하는 것이 중요합니다. - 디버거는 굳이 사용하지 않아도 됩니다!
차라리 중간 변수를 확인하고 싶으면 출력해서 확인하는 것을 권장드립니다.
'Programming > Algorithm' 카테고리의 다른 글
[바킹독: 알고리즘] 연결 리스트 (0) | 2021.04.08 |
---|---|
[바킹독: 알고리즘] 배열 (0) | 2021.04.08 |
[바킹독: 알고리즘] 기초 코드 작성 요령 1 - (2) 자료형 (0) | 2021.04.06 |
[바킹독: 알고리즘] 기초 코드 작성 요령 1 - (1) (0) | 2021.04.05 |
[바킹독: 알고리즘] 오리엔테이션 (0) | 2021.04.05 |