아무리 빠르고 간결하게 짜야하는 PS 대회더라도
모든 라이브러리 임포트하는게 비효율적이고
어떤 라이브러리에 뭐가 있는지도 배울 수가 없으니까
하나하나 vector, algorithm ... 써야한다는 생각이었는데
고수들 코드 좀 보니까 죄다 <bits/stdc++.h>로 해놓네..
내가 어리석은거임?
/////
별개로 최근에 Clean Code 책 읽어서 그런지
최대한 한 함수가 한 기능만 담당하도록 짜고 있는데
이것도 고수들은 대부분 메인 안에서 거의다 해결하고 함수는 한 두 개만 있네
(물론 문제에 따라 이 사람들도 함수 여러 개 쓰겠지만..)
나는 인풋 받는 함수 따로, 답 계산하는 풀이과정 함수 따로, 답 출력하는 함수 따로,
풀이과정 내에서도 좀만 길어진다 싶으면 함수로 세분화하고
if ((x >= 0) && (x <= MAX_X) && (y >= 0) && (y <= MAX_Y)) { ...}
이런 boolean 계산 식도 bool IsInRange(int x, int y) 함수로 나눠서 씀
고딩 때 올림할때는 마구잡이로 메인에 다썼었는데
이제는 그렇게 짠 코드는 보기가 싫음..
근데 또 훨씬 오래 걸려서 골치아프네
매크로도 비슷한 이유로 쓰는 게 쫌 꺼려짐;; 나왜이러냐
PS랑 현업에서의 프로그래밍은 좀 차이가 있음 PS에서는 bits stdc 쓰는게 맞고 현업에서는 쓰지 마셈 그거를 잘 구분하면 됨
ㅇㅇ 이제부터는 쓰려고 생각중
bits/stdc++.h에 헤더가 수천개 있는것도 아니고 왜 비효율적임
실무를 한다면 그게 맞겠지만 PS 혹은 빠른 시간 내에 코드를 짜야 되는 CP에서는 그냥 자기가 제일 편한 방식으로 하는걸 뭐라할 순 없지. 여기서도 자주 나온 얘기지만 변수 이름 a, b, c, d 로 박는것도 PS러들 특인데 이게 좋다고 볼 순 없잖음
ㅇㅇ 그것도 고민임 뭐라하겠다는 게 아니라 나는 길게 서술적으로 쓰는 게 편한데 그럼 또 오래걸려서 고민이라는 말이었어
그리고 클린코드 좋은책이긴 한데 너무 맹신하지 마셈 함수명 변수명 너무 길게하는 것도 좋지 않음
난 참고로 변수 이름 3글자 초과하면 온몸에 발작일어나서 코딩 못함
물론 PS한정
ㄷㄷ 짤때 안헷갈림?
그렇게 많은 변수가 필요하지 않잖아 PS할땐
개발이야 IDE 자동완성 추천뜨는 시간 정돈 아무렇지 않은데 PS는 그시간도 아깝지 자동완성보다 변수명 짧게치는게 훨씬빠름
코드 100줄정도까지는 괜찮은데 200줄가까이 넘어가면 변수명이라던가 함수가 너무 햇갈리더라 그래서 빠르게 타이핑가능한 선에서 최대한 함수로 잘 분리하는게 맞음