이번 강의 내용은 실제 코드를 짤 때 주의해야 할 점이다. 

 

목차 

0x00 STL과 함수 인자 

0x01 표준 입출력 

0x02 코드 작성 팁 


0x00 STL과 함수 인자 

아래 함수의 출력값을 말해보자. 

첫 번째 

func 함수에 t값을 복사해서 보낸다. 

따라서 t값은 변함이 없다. 답은 0이 출력된다. 

두 번째 

배열 이름을 넘긴다는 것은 배열 주소를 넘기는 것이다. 

arr의 값을 넘기고, 0번째 값 주소에 접근해서 10을 할당했다. 

답은 10이 출력된다.  

세 번째 

구조체는 사용자 정의 자료형이다. 첫 번째 문제처럼 값이 다 복사되어 넘어간다.

따라서 답은 0이다. 

 

STL을 쌩으로 함수 인자에 넣으면, 복사해서 보낸다. deep copy

 

STL도 구조체랑 비슷하다.

함수 인자로 실어보내면 복사본을 보낸다. 따라서 원본에 영향을 주지 않고, 0이 출력된다. 

벡터 안의 값을 비교하고 싶다면?  주소 값을 보내자. 

cmp1 함수 : vector 값을 전부 복사하기 때문에 O(N) 시간복잡도가 나온다. 

cmp2 함수 : 주소만 넘기기 때문에, O(1) 이 된다. 


0x01 표준 입출력 

1. cin/cout 쓸 때 유의사항 : 입출력으로 인한 시간초과를 막기 위해서 아래 코드를 넣어주자. 

단, 이 명령을 쓰면 cout/cin과 printf/scanf를 섞어쓰면 안된다. 

ios::sync_with_stdio(0)
cin.tie(0)

 

2. 공백을 포함한 문자열을 받을 때, getline을 쓰자 

3. endl 쓰지 마세요. (궁서체)

줄바꿈이 필요하다면 개행문자를 쓰자. '\n'

 

0x02 코딩 팁

1. 코딩 테스트와 개발은 다르다. 

코테의 목표는 제한 시간 안에 정답을 받는 것이다. 

코테의 목표는 남이 알아볼 수 있는 클린 코드를 작성하는 것이 아니다. (변수명, 예외처리 를 크게 신경 쓸 필요가 없다.)

내가 헷갈리지 않는 범위 안에서 어떻게든 타이핑을 아끼자. 

 

2. [중요] 문제를 30분 고민했는데 실마리가 안잡히면?

스트레스 받지 말고 다른 사람의 코드를 보며 배워가면 된다. (스트레스 받으면 코테 준비 오래 못한다)

코테 준비는 원리를 이해하고 패턴을 익히는 것이기 때문이다. 


기초코드 작성요령2 백준 문제집

다음 시간에는 '배열'을 공부한다.  

공부 자료 출처: 바킹독 실전알고리즘 기초코드 작성요령2 

728x90

'알고리즘 > 실전 알고리즘' 카테고리의 다른 글

0x05강 - 스택  (0) 2021.11.23
0x04강 - 연결리스트  (0) 2021.11.22
0x03강 - 배열  (0) 2021.11.21
0x01강 - 기초 코드 작성 요령1  (0) 2021.11.19
0x00강 - 오리엔테이션(환경세팅)  (0) 2021.11.19

+ Recent posts