40일차 (02-02-2021)

조상래·2021년 2월 2일
0

코드스테이츠

목록 보기
38/73

오늘은 뭔가 어리둥절한 날이다. 토이프라블럼 6번 문제를 풀었는데 이때까지 풀어본 그 어떤 것 보다 어려웠다. 문제는 스도쿠 솔루션 만들기였다. 무작위로 비어진(비어있는 곳은 0으로 표시) 9x9배열을 넣으면 자동으로 문제를 풀어주어 나오게 만드는것. 처음엔 NQueen과 비슷하게 접근을 하여 가로, 세로 충돌 검사 보드판을 9부분으로 나누어 인덱스가 속해있는 부분에서 충돌 검사 하는 실제 스도쿠 푸는 방법과 똑같은 형식으로 알고리즘을 짰다. 문제는 스도쿠는 1~9 까지의 숫자가 들어가야한다는 점! 내가 한 방식으로 한다면 무수히 많은 경우의 수가 나올것이다. 그래서 일찍 포기하고 레퍼런스를 보았다.

레퍼런스의 해결방식은.

  • 빈 곳의 인덱스를 기록한 배열을 생성
  • 0 ~ 9 까지 행에서 각 행에 들어가있는 숫자로 배열을 생성
  • 0 ~ 9 까지 열에서 각 열에 들어가있는 숫자로 배열을 생성
  • 9개 부분으로 나누어진 보드를 임의로 만들어 각 부분에 속해있는 숫자로 배열을 생성
  • 토글/ 충돌체크로 이루어진 함수를 구현하여 재귀로 보드를 완성

굉장히 복잡하였다. 레퍼런스를 해석하는데도 꽤나 시간이 걸렸는데 내가 다시 구현을 할 수 있을까? 시간이 있다면 많이 투자해서 익숙해져야겠다.

페어스케줄은 어제 promise에 이어 fetch API를 활용한 then 체이닝이었다. fetch의 특성은 이미 promise로 구현이 되어 있다는 것 그래서 데이터를 받아올 때 promise의 형태로 받아오고 우린 then으로 값을 받아오면된다.

스프린트의 내용중 한 부분을 갖고 온다면,

콘솔에 찍히는 자료의 형태를 알 수 있다. 객체의 형태이고 우린 data속성의 자료만 뽑아서 볼 수 있다.

배우면 배울수록 재밌고 신기하다. 그러나 써도써도 헷갈리는 것 ... 그래서 어리둥절한 날이라고 표현했다.

profile
Codestates Full IM26기 수료

0개의 댓글