2022/10/18 화요일

Gong Intaek·2022년 10월 18일
0

일상

목록 보기
496/1031
post-thumbnail

오늘 한 일

  • 프로그래머스
    • 택배 상자 (Level 2)
  • 실내 운동

문제 풀이

택배 상자 (Level 1)Github

주어진 오더에 맞게 수령할수 있는 택배 박스의 숫자를 돌려주는 문제.

풀이 완료

최초로 주어지는 택배 박스의 순서는 오름차순이나 내림차순으로 빼둘수도 있다는 것을 기억해야 한다.

우선 생각 해본 것은 택배상자 싣기를 종료 하는 조건 이다. 해당 조건은 현재 실어야 하는 택배상자가 오름차순으로 정렬된 벨트에 존재 하지 않는 조건하에(해당 벨트에 상자가 없거나 해당벨트의 최소 박스 번호가 현재 상자 박스 번호보다 클경우) 빼둔 벨트의 상자와 일치하지 않을 경우다.

따라서 주어진 주문을 순차적으로 수행하는 과정에서 위 조건이 성립 되면 연산을 종료 하게끔 구성하였다.

이후 생각 해야 할것은 위조건이 아닐경우의 작업 수행 방법이다. 우선 주어진 택배상자의 배열이 무척 길수도 있기때문에 전체 배열을 구성하여 하나하나 제거하는 방식을 취하지 않았다. 우선은 오름차순의 가장 앞의 상자의 번호를 변수로 받고 내림차순의 벨트의 상자 순서를 배열로 입력하는것을 고안하였다.

현재 상자의 번호를 확인하고 오름차순의 상자의 번호보다 크거나 같을 경우, 같다면 현재 상자 번호를 대체하게 하고 실은 상자 갯수를 하나 카운팅한다. 크다면 현재 상자 번호에서 선택된 상자 번호보다 1작은 상자까지 내림차순 배열에 추가한다. 추가할경우 주어진 배열의 시작값과 끝값만 배열화하여 입력하되 입력된 배열의 0번자리에 마지막 값을 위치하게 한다.

오름차순 벨트의 시작 상자가 1이고  현재 선택된 상자가 6일때 
내림차순벨트에는  1-5 까지의 상자가 넘겨 질것이고 이를 [5,1] 형태로 배열에 입력한다.

현재 상자번호가 내림차순 배열에 마지막 상자와 일치하는 경우 해당 상자를 제하고 내림차순 배열을 정리한뒤 실은 상자에 카운팅을 한다.

이 과정을 더이상 실지 않을때까지 반복하여 문제를 풀이하였다.


추후 진행 예정인 작업(잠정 중단.)

  • socket.io 서버로 하는 단순한 멀티 룸 채팅.

  • 위의 결과를 server-side로 구현해보기.

  • firebase 사용법 배우기

  • serverless lambda 학습하기


오늘은...

  • 업무를 차근차근 진행해봄. 방향을 잘못잡아 이리저리 시간을 소모함.

진행 중단중인 프로젝트

socket.io - chatapp

홈페이지 만들기

pathfinder(미로 길찾기 게임)

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

0개의 댓글