[TIL]200915 N-Queens-2

haebae·2020년 9월 17일
0

TIL

목록 보기
35/53
post-thumbnail

오늘의 Toy Problem

특정 배열이 매개변수로 전달되는 배열의 부분집합인지를 판단하는 메소드를 만드세요.
비교 대상인 두 배열 모두 문자열로 이루어졌다고 가정합니다.

코드를 짜는 것 자체는 어렵지 않았지만 this에 대해서 알지 못하면 풀 수 없는 문제였던 것 같다. 내가 짠 코드는 크롬의 콘솔에서 잘 돌아갔지만 메소드로 만들게 되면 기존에 설정된 값으로 어떤 것이 들어올지 알 수 없기 때문에 그에 대한 방법으로 this키워드를 통해 설정값을 받아와야 한다는 것을 알게 되었다.

  1. 반복문을 통해 기존에 설정된 배열을 하나씩 확인한다
  2. 입력된 배열에 설정된 배열이 포함되어 있는지 includes메소드를 통해 확인해서 포함되어 있으면 true 포함되어 있지 않다면 false를 리턴한다.

어제는 헬퍼함수를 작성했고 오늘이 본격적으로 엔퀸즈 문제를 푸는 날이었는데 결과적으로 다 풀어내진 못했다.
엔룩스 문제는 어찌어찌 풀어냈지만 엔퀸즈 문제는 재귀를 더 잘 활용해야 하는 것으로 보인다.

엔퀸즈 스프린트를 진행하면서 백트래킹(Backtracking)에 대해서 공부하게 되었는데 백트래킹이란 DFS(Depth Frist Search)에서 자주 사용되는 방법인데, 가지치기 알고리즘을 통해 조건을 만족하지 않을 경우 상태를 되돌려서 작업을 다시 진행하는 것으로 모든 경우를 일일히 살펴보지 않아도 조건에 만족하는 답을 구할 수 있다면 사용할 수 있는 효율적인 방법이다.

엔퀸즈 문제에 적용하자면 아래 그림과 같다

그림은 이해했지만 코드로 구현하지 못했는데

문제점은 의사코드를 디테일하게 작성하지 못한 것, 그리고 재귀함수에 대한 이해와 사용능력의 부족을 느꼈다.

내일 첫번째 테스트인 Basic CS Hiring Assessments를 잘 마치고 나서 솔로데이 기간동안 개인적으로 더 공부해봐야할 부분인 것 같다.

profile
주니어 개발자가 되고싶은

0개의 댓글