최근 인터넷에서 '면접에서 만난 문제'로 두번이나 보니,
그냥 한번 해보고싶어졌다.
몇분이면 뚝딱 나올줄 알았는데 마지막에 Spiral 형식으로 번호를 어떻게 부여할까 고민하다가 1~2시간 걸려버렸다.(그마저도 고민 그만하고 지금 이 방법으로 하자고 해서....)
먼저 lab80.co의 지원서(https://lab80.typeform.com/to/IcOxyP) 중의 일부입니다.
언어는 javascript로 하였고, 원하는 행과 열을 입력하면 해당하는 테이블이 먼저 생성되고,
나선형(spiral) 번호는 나중에 다시 부여하는 방식을 택했다.
(어떤 패턴을 찾아내서 한번에 가능케 하려고했지만...)
아무튼 결론.
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"번호로 부여해서 했는데. 좀더 간단하게 할 수 있을것같았는데 갑자기 배가 아파서 그냥 이렇게 하고 끝내기로.
'Write > Etc' 카테고리의 다른 글
오늘 하루 보지 않기(오늘만 보지 않기) != 24시간 보지 않기 (0) | 2023.03.07 |
---|---|
메모, 노트 어플 (2) | 2014.11.14 |
삼성 다음 펌웨어부터 이런 부분들 좀 신경 좀 써주세요! (0) | 2013.12.01 |
내가 쓰는 이클립스(Eclipse) 플러그인(Plug-in) (0) | 2011.10.16 |
디자인과 정보는 구분되어야한다. (1) | 2011.09.26 |