이건 내 풀이를 모아놓은 깃헙 레포.


언어는 깃헙 언어 통계에서도 보이듯, F#, C++, 어셈블리, text(얘는 통계 안잡힘)만 사용함.


난 백준은 취미로 하는 거라 코테마냥 시간 재면서 하는 것도 아니고, 그냥 내 생각에 재밌어보이는 문제 위주로 푼거임.


여하튼 여태 F#으로 백준 하면서 느낀 점은

1. 시간 제한이 빡센 문제가 몇몇 있지만 이건 함수형 때문이 아니라 닷넷이라 그런 듯함. 같은 닷넷인 C#도 백준에선 마이너한 언어라 정확한 비교는 어려워서 보통 파이썬 통과자랑 비교하는데, 통과 시간이 비슷한 경우가 많음.

2. 생각없이 리스트 만들면 메모리가 터지는 경우가 많다. 이거 때문에 iter, map, fold 등등을 쓰고 싶은데 반복문으로 우회한게 좀 많음.

3. mutable을 많이 쓰게 됨. 이론적으론 mutable없이 가능하지만 메모리 제한 때문에 안되거나 많이 돌아가는 느낌이라 mutable을 상당히 많이 쓸 수 밖에 없어짐.

4. 문제 유형에 따라 함수형 패러다임이 가능한 경우도 있고, 불가능한 경우도 있다. DP가 특히 함수형으로 최적화하는게 불가능하거나 힘든 것 같음. 간단한 DP면 상관 없는데, 복잡한 케이스일수록 함수형으로 어떻게 짜야 할 지 잘 모르겠어서 그냥 if/for 도배해놓게 됨. 반대로 수학이나 자료구조 관련 문제는 함수형 스타일의 최적화/추상화가 가능해서 함수형으로 짜기 편함. 이건 내 능력이 부족한 것일 수도 있음.


사실 백준에서 하스켈을 지원했으면 좀 더 머리를 굴려봤을텐데 F#으로 짜느라 모로 가도 서울로만 가면 된다는 느낌으로 짠게 많긴 함.

만약에 하스켈로 짰으면 DP문제들도 어떻게든 함수형으로 통과시켜보려고 시도는 해봤을 듯.