코테관련 C++ 팁 모음

JUSTICE_DER·2023년 3월 27일
0

⏲ CPP - 코딩테스트

목록 보기
2/41

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

위의 2줄을 사용하면, 수행속도 증가
안풀리던 문제까지 풀리는 경우가 존재할 정도로 유용.
https://dingcoding.tistory.com/m/62

위의 글을 요약하면,
ios::sync_with_stdio(0)
C의 printf와 C++의 cout을 혼합하여 사용하는 방식을 제한하여,
cout / cin 계열의 입출력만 지원하게 되면서, 비용을 줄이게 된다.
주의할 점은 해당 코드를 사용하면, printf를 사용할 때 오류

cin.tie(0)

cout << "What is Your Name?? \n" <<;
cin >> name;

위의 경우, cout이 된 후, cin을 하는 것이 강제적이다.
이런 강제성을 cout에게 종속된 cin의 강제성을 푸는 것이 tie 0 이고,
논리적으로 이름을 입력하라고 한 뒤, 입력을 실행하는 것이 맞지만,
코테에서 중요하지 않고, 속도가 향상한다.

결론적으로 scanf/printf보다 cin/cout이 더 오래 걸리지만,
위의 2개의 줄을 추가하면 더 빠르게 실행된다.

하지만, 문제되는 경우가 간혹 존재하는데, 그렇다면 그냥 두 줄을 지우고
printf와 scanf를 사용하면 된다.

2. endl 대신에 \n를 사용

endl 대신 '\n' 을 사용해야 시간을 절약할 수 있다.

3. Switch - Case : 정수형만 가능

CPP의 Switch문의 조건으로는, 정수형, enum형의 값만 올 수 있다.

Java와 다르게, switch의 조건으로 string을 놓을 수 없다.

결론적으로, 일반적인 방식으로는 Switch에 String을 사용할 수 없다.
Java가 그립다

std::map를 사용하여 입력을 다음에 매핑 할 수 있습니다
https://stackoverflow.com/questions/3019153/how-do-i-use-an-enum-value-in-a-switch-statement-in-c

STL
사용순
Map
Queue
List
Vector

profile
Time Waits for No One

0개의 댓글