public void quality(int x, int y, int num)
{
if ((x < 0) || (x > length - 1)) // check x bound
{
return; // out of bound -> quit
}
if ((y < 0) || (y > length - 1)) // check y bound
{
return; // out of bound -> quit
}
if (!map[x, y])
{
return; // false -> quit
}
else
{
num++; // inc num
quality(x, y - 1, num); // rec: up
quality(x - 1, y, num); // rec: left
quality(x, y + 1, num); // rec: down
quality(x + 1, y, num); // rec: right
return; // end
}
}
꼬박 꼬박 return 으로 끝내주는데 ..
마치 for루프만 있고 안에 수행하는 내용이 없는 뭐 그런 느낌
시발 저거 뭐야 무서워
length?
왜 .. ㅠ.ㅠ true이면 num ++ 해주는데 ㅠ.ㅠ 그걸론 안댐?
그건 ... 위에 있는 다른 변수 걍 x, y축 길이라고 생각해주셈
164.125// 아 아까 최적화 글에서 봤던 게이군. 요는 num의 값을 바꾸고 싶은거지? 그럼 num을 포인터로 불러오던가 전역으로 선언하던가 static으로 선언해봐. 지금 상황에서는 포인터 강추. 이유는 저 함수가 call by value인 상태이기 때문이야.
c#에서도 그거 조정가능함? int* num 요래 인풋 넣으면 되나?
164.125// C#에서는 레퍼런스를 쓰면돼.
ㄳ