analogcoding

6/5 / algorithm , N Queens 본문

Be well coding/In Immersive

6/5 / algorithm , N Queens

be well 2019. 6. 5. 11:25

Toy 02번 문제. 문자열이 주어지면 중복되지 않는 유니크한 문자열이 있으면 리턴하고 아니면 null을 리턴. 

 

 특정한 문자열의 위치(index)를 반환한다. 시작 기준점이 달라도 하나라면 같은 인덱스에 위치하고 있을 것이므로

indexOf , lastIndexOf 로 해결했다.

 

 

스프린트 & 피어 리뷰

 

이번 스프린트에서 가장 큰 목적을 크게 나열해보자면

 

1. Class 를 이용한 상속 - 상속받은 기능 외 추가 기능 구현하기.

---> 성공하긴 했다. 다른 기능을 추가하고 기존 기능을 가져오고까지는 성공.

2. 상속받은 메소드를 이용해서 기능 구현하기.

---> 받은 메소드를 활용해서 다른 기능을 구현하는데 어느 것은 성공하고 어느 것은 실패하고.. 반쯤 성공.

3. css 여러 효과 사용해보기.

---> 실패 대실패 진짜 css 제일 어렵고~ 제일 싫고.. 지금 스프린트 따라가기 벅차서 찾고 따로 공부하는 시간이 무조건 필요하다..

 


 

N-Queens 인트로

 

알고리즘 심화. 특정 상황에서 알고리즘 생성.

 

전략을 세우고 효율적인 배치를 시작.

 

 

1. 가로줄 확인하는 함수 생성

 

2. 세로줄 확인하는 함수 생성

 

3. 좌상 내림 대각선을 확인하는 함수 생성

 

4. 우상 내림 대각선을 확인하는 함수 생성

 


이중배열구조로 생각  

 

Ex)  4*4  rook

 

[ [ 0 0 0 0 ],
  [ 0 0 0 0 ],                         <---- 이런 형태로 체스판 생성.

  [ 0 0 0 0 ],
  [ 0 0 0 0 ] ]

 

        ⬇️

[ [ 1 0 0 0 ],
  [ 0 0 0 0 ],                       ( 0 , 0 ) 자리에 rook 가 위치하면

  [ 0 0 0 0 ],
  [ 0 0 0 0 ] ]

 

        ⬇️

[ [ 1 X X X ],
  [ X 0 0 0 ],                       ( 0 , n ) 과 ( n , 0 ) 에는 배치 *(이 부분이 가로줄,세로줄 검사 함수) 불가

  [ X 0 0 0 ],
  [ X 0 0 0 ] ]

 

        ⬇️

     case1                    case2                  .....

[ [ 1 0 0 0 ],          [ [ 1 0 0 0 ],
  [ 0 1 0 0 ],             [ 0 0 1 0 ],                     이런 식으로 다음 1이 배치될 수 있는 자리에 재귀적으로 같은 검사함수를 실행

  [ 0 0 .. 0 ],            [ 0 .. 0 0 ],
  [ 0 0 0 .. ] ]          [ 0 0 0 .. ] ]

 

n번이 찍힐 때만 count++ 그 외의 경우는 모두 패스.

queen 의 경우 대각선 검사 함수 추가?

 

일단 알고리즘을 글로 정리해보았다. 

 

문제는 코드로 옮기는 과정에서 나의 부족함이 많이 들어났다. 변수도 헷깔리고...

 

정리는 잘하는데 이해력이 부족한건지..

'Be well coding > In Immersive' 카테고리의 다른 글

6/7 / algorithm , N Queens  (0) 2019.06.08
6/6 / review  (0) 2019.06.06
6/4 / Instantiation Patterns 3  (0) 2019.06.05
6/3 / callback , value  (0) 2019.06.03
6/1 / Instantiation Patterns 2  (0) 2019.06.03
Comments