알고리즘 문제 풀때 유용한 팁

icymunchhhiip·2021년 9월 17일
0
post-thumbnail

알고리즘 공부를 시작하는 사람들에게 좋을 팁, C++ 기준
메모할 겸 적는 거라 자세한 설명은 생략 !

  • 🧞 실무에서는 지양, 대회에서만 사용할 것
  • 🌟 자주 사용하지 않고 필요시 가끔 쓰면 유용

변수의 전역 선언 및 사용

변수대부분 전역으로 선언하여 코드 내에 광범위하게 사용 🧞

매크로 사용

자주 사용하는 코드 일부는 매크로로 표현 🧞🌟
e.g. for문을 변수만 입력으로 받는 매크로로

정수형의 최대값을 987654321로 정의

32비트 부호있는 정수형에서 최대값(무한대값)을 정의할 때는 987654321
-> 숫자 갯수 오타 신경을 안써도 되니 오버플로 걱정을 덜 수 있다

cin.sync_with_stdio(false)

입력받기 전, cin.sync_with_stdio(false);. 특히 입/출력 변수의 수가 1만 개 이상일 때 주의
-> <cstdio>의 표준 입출력 함수들과의 동기화를 꺼주어서 속도 향상

같은 값 범위는 변수 최대 값의 1/10^10 ~ 1/10^12

같은 값 판단 기준은 오차가 변수의 최대 값의 1/10^10 ~ 1/10^12
-> 같게 판단할 만큼 오차가 커야하니 최대 오차의 상한. 64비트 실수형은 최대 15자리니까 1/10^15는 버려지고 오차 누적된다면 1/10 정도라 가정

다른 값 범위는 절대와 상대 오차를 이용한 함수로

다른 값 판단 기준은 오차가 1/단위. 혹은 절대(1e-10) 및 상대 오차(절대차<=1e-8*절대값중큰값)를 모두 이용해 비교하는 함수 작성

이상으로 직접 산 책을 읽고 유용하다고 생각하는 부분을 모아보았습니다(광고 아니라는 뜻). 책에 설명이 구체적으로 있으니 구매해서 읽어보시는 것도 추천드립니다. 제 글을 읽어주셔서 감사합니다(ㅇ-ㅇ)(_ _).

  • 참고 도서: 구종만, 『프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략 1』, 인사이트
profile
🐣 behance.net/5c533018

0개의 댓글