2022/09/28 수요일

Gong Intaek·2022년 9월 28일
0

일상

목록 보기
476/1031
post-thumbnail

오늘 한 일

  • 프로그래머스
    • 땅따먹기 (Level 2)
  • 걷기 운동

문제 풀이

땅따먹기 (Level 2)Github

주어지는 배열에서 연속해서 같은열을 취하지 않는 규칙하에 최대로 가질수 있는 값을 돌려주기

풀이 완료

아쉽게도 자력으로 풀이를 완수하지 못했다. 프로그래머스 문제의 질문하기에서 힌트를 얻어 문제 풀이를 마무리 하였다. 힌트는 이 문제 풀이에서 집중해야하는 것은 주어진 규칙, 연이어서 같은 자리의 값을 선택할수 없다는 점이라는 것이다. 즉 그이전과 그이후의 선택은 현재위치에서의 선택에 영향을 끼치지 못한다는 점이다.

하지만 이전까지의 고민에서 나는 그 모든 과정의 선택을 통괄하는 방법을 찾고 있었다. 풀이 방법의 방향을 잘못 잡았던 것이다. 여한간 위방식을 사용하여 재귀함수를 사용하되 재귀함수내에서는 현재 위치와 다음의 위치의 값들만을 고려하여 문제 풀이를 진행하게 하였다. 함수내에서 현재 열을 선택하고 다음열을 선택할때 다음열의 각위치에서 가질수 잇는 최대값을 구하고 다음열의 현재 위치에 입력하는 작업을 진행하였다.

[1, 2, 3, 4] 현재열
[2, 3, 4, 5] 다음열 => [6, 7, 8, 8]

작업 수행시 다음열은 위와 값이 수정된다. 그리고 다음열이 현재 열이 되면 그다음열을 다시 위와 같은 방법으로 수정을 진행한다. 이 과정이 마지막까지 진행되고 나서 최종열에서 가장 큰값을 돌려주면 그것이 문제에서 요구하는 답이 되는것이다.

하지만 재귀로 구성한 위방식은 정확도의 예문을 모두 풀이하고 효율서으이 예문에서는 모두 런타임 오류가 발생하였다. 아무래도 재귀 방식으로 인한것일수 있기에, 이것을 while 반복으로 수정하여 다시 테스트를 진행하니 모든 예문을 풀이하는 결과를 얻을수 있었다.


추후 진행 예정인 작업

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

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

  • firebase 사용법 배우기

  • serverless lambda 학습하기


오늘은...

휴식


진행 중단중인 프로젝트

socket.io - chatapp

홈페이지 만들기

pathfinder(미로 길찾기 게임)

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

0개의 댓글