
1 ≤ wallpaper의 길이 ≤ 50
1 ≤ wallpaper[i]의 길이 ≤ 50
wallpaper의 모든 원소의 길이는 동일합니다.
wallpaper[i][j]는 바탕화면에서 i + 1행 j + 1열에 해당하는 칸의 상태를 나타냅니다.
wallpaper[i][j]는 "#" 또는 "."의 값만 가집니다.
바탕화면에는 적어도 하나의 파일이 있습니다.
드래그 시작점 (lux, luy)와 끝점 (rdx, rdy)는 lux < rdx, luy < rdy를 만족해야 합니다.
function solution(wallpaper) {
var X = [];
var Y = [];
for (i = 0; i < wallpaper.length; i++){
for( j = 0; j < wallpaper[i].length; j++){
if(wallpaper[i][j] === "#"){
Y.push(i);
X.push(j);
}
}
}
X.sort((a, b) => a - b);
Y.sort((a, b) => a - b);
return [Y[0], X[0], Y[Y.length - 1] + 1, X[X.length - 1] + 1];
}
좌표를 정리해줄 X, Y배열을 생성한다. 이후 이중 반복문을 통해 파일(#)이 위치한 위치를 찾고 파일을 찾게 되면 i값은 Y 배열에, j값은 X 배열에 넣어준다. => i값 = y좌표값, j값 = x좌표값
이후 구한 값을 오름차순으로 정렬 해주고 [가장 작은 y값(가장 상단 좌표 값), 가장 작은 x값(가장 좌측 좌표 값), 가장 큰 y값(가장 하단 좌표 값), 가장 큰 x값(가장 우측 좌표 값)] 순으로 return 해줘야 하므로, 각 배열의 첫번째 수와 마지막 수를 정렬해주면 되는데 파일을 포함해야하기 때문에 마지막 수에는 +1을 해준다.
기존 과제 수행시에는 assets폴더(데이터 테이블)가 public 밖에 있었는데 public안으로 넣어줬다 - '서버와 클라이언트는 같은 게임 데이터 테이블을 보고 있다.'
=> 10점이 되었을때 스테이지가 2로 넘어간다는 사실을 서버만 알고 클라이언트는 모를 경우 유저가 제대로된 플레이를 할 수 없다.
보통 데이터 테이블을 관리할 때 서버에서 관리하는 정보, 클라이언트에서 관리하는 정보, 서버와 클라이언트 둘 다 사용하는 정보를 따로따로 구분해서 구분할 수 있는 장치를 두고 관리하기도 함.
register.html에 회원가입 API를 호출하고 비밀번호 확인에 대한 검증 추가.
로그인에 성공하면 토큰을 획득
로그인 하지 않고 플레이 버튼을 누르면 토큰이 없어서 로그인이 진행되지 않게 작성.