Write/Etc

요즘 많이 나오는 면접 문제.

GNUNIX 2014. 12. 6. 18:36

최근 인터넷에서 '면접에서 만난 문제'로 두번이나 보니,

그냥 한번 해보고싶어졌다.

 

몇분이면 뚝딱 나올줄 알았는데 마지막에 Spiral 형식으로 번호를 어떻게 부여할까 고민하다가 1~2시간 걸려버렸다.(그마저도 고민 그만하고 지금 이 방법으로 하자고 해서....)

먼저 lab80.co의 지원서(https://lab80.typeform.com/to/IcOxyP) 중의 일부입니다.

 

 

언어는 javascript로 하였고, 원하는 행과 열을 입력하면 해당하는 테이블이 먼저 생성되고,
나선형(spiral) 번호는 나중에 다시 부여하는 방식을 택했다.

 

spiral.xlsx

(어떤 패턴을 찾아내서 한번에 가능케 하려고했지만...)

 

 

spiral.html

아무튼 결론.

 

0 1 2 3 4
0 0_0 0_1 0_2 0_3 0_4
1 1_0 1_1 1_2 1_3 1_4
2 2_0 2_1 2_2 2_3 2_4
3 3_0 3_1 3_2 3_3 3_4
4 4_0 4_1 4_2 4_3 4_4

 

위를 보면

0 1 2 3 4
13 14 15 16 5
12 19 18 17 6
11 10 9 8 7

번호 매겨지는 순서대로

처음엔 col인덱스 값만 증가하고 col인덱스 값이 cols값과 같아지면 row인덱스를 rows값만큼 증가시킨다.(그리고 제일 첫row와 제일 마지막 col은 꽉찬것(지나간길)으로 표시.)

다음 마찬가지로 반복 하되 이번엔 감소.

그리고 계속 반복.

 

 

테이블 각 td마다 id를 "row_col"번호로 부여해서 했는데. 좀더 간단하게 할 수 있을것같았는데 갑자기 배가 아파서 그냥 이렇게 하고 끝내기로.