2021/12/09 목요일

Gong Intaek·2021년 12월 9일
0

일상

목록 보기
181/1026
post-thumbnail

TIL


오늘 한 일

  • leetcode
    • Queens That Can Attack the King. (medium)
  • 휴식

문제 풀이

Queens That Can Attack the King. (medium)

체스보드위에 킹 한개와 여러개의 퀸이 존재할시 킹을 공격할수 있는 퀸의 좌표들을 돌려주는 문제.

특정위치에 존재하는 킹을 공격할수 있는 퀸의 갯수는 최대 8개이다. 이는 킹의 좌표를 원점으로 하는 계산된 좌표계에서의 퀸의 위치를 각도로 표현할경우 45도의 배수 형태로 나타나게 된다. 해당 각도내에서의 위치중 킹에 가까운 퀸만이 해당 상항이 된다.

이를 바탕으로 풀이 방식을 생각해보면 다음과 같다.

  1. 우선 입력 되는 정보는 킹의 좌표와 퀸들의 좌표이다.이를 우선 킹의 좌표가 원점이 되는 좌표계의 좌표로 변경한다.

  2. 선택되는 대상의 좌표를 입력할 결과 배열과 해당 좌표가 원점으로 부터 가지는 거리를 입력할 거리 배열을 선언 한다.

  3. 이후 주어진 퀸들의 변경된 좌표를 하나씩 꺼내온다.

  4. 360 도를 기준으로 45로 의 배수로 잘라내면 0~ 7 까지의 값을 가지게 된다. 이를 선택되는 좌표의 index로 정의하고 선택된 좌표로 구해진 각도가 45도의 배수이면 다음의 과정을 진행한다.

    4.1 결과배열에 해당 인덱스의 값이 존재하는지를 확인한다.

    4.2 없다면 해당 인덱스에 현재 좌표를 입력하고 거리배열에 원점에대한 현재좌표의 거리값을 입력한다.

    4.3 존재한다면 입력된 거리 배열의 값과 현재 좌표의 거리값을 비요하여 현재 좌표의 거리값이 작을경우 결과 배열의 좌표와 거리 값을 변경한다.

  5. 주어진 모든 퀸의 좌표에 대해 위과정을 진행하면 킹에 공격할수 있는 퀸의 좌표들이 결과 배열에 입력된다. 하지만 일부 인덱스의 값은 존재하지 않을수도 있으므로 출력하기전에 값이 입력된 배열의 값만 결과로 출력한다.


남은 것

클라이언트

  • 현재 상태에서 로그인 창 부분을 재활용하여 로그인 된상태 창을 구현 로그인 결과를 표기하고 로그아웃 버튼구현.
  • 실패시에는 실패 문구를 표현하고 로그인창으로 돌아가는 버튼구현.
  • 로그인 성공, 실패에 따른 결과 부분의 표현을 적용할 것.

서버

  • 데이터베이스와의 연결고리 구성

데이터베이스

  • 유저 네임, 비번만을 컬럼으로 가지는 유저 테이블 구성

공부 할 것(꾸준히)


오늘은...

회복중

profile
개발자가 되기위해 공부중

0개의 댓글