qkqkaqk93   6년 전

하... 풀긴 하였으나, 저의 하드코딩에 마음이 아픕니다...

너무 보기 안좋지 않나요..ㅠㅠㅠㅠ

개선 방법 없을까요 ㅠㅠㅠ

3587jjh   6년 전

함수를 이용해서 메인함수가 하는 일을 세분화하는게 좋을것같아요

gilsu91   6년 전

고수는 아니지만 댓글 달아봅니다.
제 스타일로 한번 정리해봤습니다.

일단
for 2개로 하나씩 선택하는걸 3번 반복하면서,
DFS수행하고 나서,
공간 구하고, max 여부비교
로 짜셨네요.

1. func1, func2, func3로 쪼겠습니다. 각각 for문 2개로 만들어졌습니다.
func3에서 첫번째 선택, func2에서 두번째 선택, func1에서 세번째꺼 선택하고
Dfs 실행합니다.
이름 정하는게 제일 어려워요ㅋㅋㅋㅋㅋ

2. 방향마다 코드 쓰셨길래, 

typedef struct position { int y, x; }p;
const p dir[] = { { 0,1 },{ 0,-1 },{ -1,0 },{ 1,0 } };
요거 만들어서 정리했습니다.

3. 이미 선택한거 또 선택하길래 픽했던거 이전꺼는 다시 선택 안하게 바꿨습니다.
말로하기 어렵네요.
func2, func1에 적용했는데, func3랑 비교하시면 이해 가실 겁니다.
func3에서는 가장 먼저 하나 선택하니까 이전 꺼는 없잖아요.
func2, func1은 이전에 픽한게 있으니까 중복 안하게 했어요.
52ms걸렸는데 44ms로 줄었습니다.

댓글을 작성하려면 로그인해야 합니다.