TIL_200106

oh_ji_0·2021년 1월 6일
0

TIL

목록 보기
57/61

Today I learned

  • 알고리즘 문제 : 프로그래머스 #크레인 인형뽑기 게임
  • 퍼스트 프로젝트 잔디, 서버 배포 및 코드 리팩토링 (기능 위주)

알고리즘


//슈도코드
//moves의 배열 열을 돌아다니면서 0이 아닐때까지 찾는다.
//0이 아니면 arr에다가 push 로 열의 숫자를 넣어준다.
//이때 숫자가 연속으로 중복되면 넣지 말고, answer를 += 2 해준다

function solution(board, moves) {
  let answer = 0;
  let arr = [];
  
  for(let i=0; i < moves.length; i++){
      moves[i] //ex) 1, 1-1=> 0,0 , 1,0, 2, 0)
      for(let k=0; k<board.length; k++){
          if(board[k][moves[i]-1] === 0){
              continue;
          }else{
            //arr의 마지막 숫자와 현재 넣을 인형이 같은 인형이라면
              if(arr.length>0 && arr[arr.length-1] !== board[k][moves[i]-1] ){
                  arr.push(board[k][moves[i]-1]);
              }else if(arr.length>0 && arr[arr.length-1] === board[k][moves[i]-1]){
                  arr.pop();
                  answer +=2;
              }else{
                arr.push(board[k][moves[i]-1]);
              }
              board[k][moves[i]-1] = 0;
              break;
          }
      }
  }
  return answer;
}

첫번째 프로젝트 리팩토링

우선 첫번째 했던 프로젝트인 잔디 사이트 배포를 개인 나스 서버를 통해 띄웠다. 첫번째 문제는 쿠키 및 세션부터 기능적인 문제가 많아서 깔끔하게 끝내지를 못했던 프로젝트였기 때문에 서버부터 리팩토링하면서 기능 위주로 구동이 되도록 만져줄 필요가 있었다.

일단은 로그인 기능이 정상적으로 되지 않아 jwt를 통한 세션 쿠키를 만들어서 클라이언트에 쿠키를 심어줬다. (현재 배포서버 말고 로컬에서 테스트를 거치며 구동을 확인하고 서버에 반영 작업을 해주고 있다.)

우선 어제는 클라이언트와 서버 /login , /signup 부분에서 athorization 쿠키 생성 작업을 끝냈고, /main 에서 날짜별 todolists들을 받아오는 작업을 진행했다. 날짜별로 투두리스트를 객체 형태로 뿌려주는 곳에서 에러 발생으로 정상적으로 작동하지 않아서 해당 문제를 오늘 수정했다.
유저가 보기 편하도록 스크롤을 오른쪽으로 고정해두는 작업도 진행했다.
내일은 마이페이지와 메뉴화면에 대한 수정 작업을 할 예정이다.
요기까지 마치면, 배포 url 공개하고 포폴에 넣어둬야겠다.

profile
기본에 충실하고 싶습니다. #Front-end-developer

0개의 댓글