malbong   4년 전

저는 무차별로 접근해야겠다 마음먹고

중복되지 않는 선에서 도형을 

모든 경우의 수 생각해서 하나하나 if문 걸어주고 인덱스를 N*M개 돌려줬는데요

코드는 아래와 같습니다

1.  아래와 같은 코드를 꼭 유연하게 해야 하나요?

2.  매트릭스만 나오면 자주 이러한 방법으로 접근하는데 옳은 방식인가요 ?

nahwasa   4년 전

얼마 안된 늅늅이라 감히 말씀드리기 어렵지만 그냥 제 생각대로 적어봅니다.

일단 저게 옳냐고 하시면 옳기야 합니다.

어쨌든 주어진 시간에 주어진 메모리로 주어진 문제를 수행한거니까요.


다만 경험상 하드코딩은 최대한 지양하시는게 좋다고 봅니다.

상황따라 다르긴 하지만 보통은 문제풀 때 사고력(?)을 높히는덴 도움이 안되는 느낌이에요.

그냥 반복문 10번만 돌리면 되는 문제가 있다고 할때, 그냥 다른 방법 안찾아보고 10번 쓰지 뭐! 이렇게 되는 느낌?

비효율적이기도 하구요. 좀 더 보자면 현업으로 따져도 안좋은 방식이구요. (나중에 누군가가 저 부분에 대해 4개말고 5개로 해주세요! 이렇게 되버리면.. 난-감)

저 문제야 그렇게 케이스가 많지 않지만 케이스가 늘어날수록 기존 방식으론 답도 안나오는 경우가 생길 수 있을테니까요!

물론 괜히 최대한 유연하게 하기 위해 무슨 자료구조 붙이고 뭐 붙이고 뭐 붙이고 하면서 더 더러워지는 경우도 있습니다.

하지만 그렇더라도 그런식으로 생각하시는게 나중을 보면 최종적으론 좋다고 생각합니다.

lim551   4년 전

깔끔한 구현을 원하시면 코드와 데이터를 분리하시면 됩니다.

격자 그래프를 탐색 할 때 dy[4] = { 0,0,-1,1 } 과 같이 데이터를 분리하고 탐색하는 것처럼 이 문제도 블럭들을 따로 데이터로서 선언하면 구현이 깔끔해집니다. 물론 이 경우 블럭을 돌리고 뒤집는 함수를 작성해야하지만, 블럭이 많아질 경우 구현 실수가 줄어들겁니다.

malbong   4년 전

감사합니다

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