2022/01/13 목요일

Gong Intaek·2022년 1월 13일
0

일상

목록 보기
216/1022
post-thumbnail

오늘 한 일

  • leetcode
    • Maximum Twin Sum of a Linked List. (medium)
  • 실내 운동

문제 풀이

Maximum Twin Sum of a Linked List. (medium)

길이가 짝수인 Linked list 를 입력 받고 좌측, 우측에서부터 센 위치가 일치하는 값끼리 합을 구하여 가장 큰값을 돌려주는 문제.
문제를 풀이하기 위해 단순하게 접근하였다. Linked list이기때문에 짝수인 것만 알고 실제 길이는 알수 없으며 각각의 값또한 실제 노드를 확인해야 알수 있었다. 그래서 생각한것은 Linked list를 하나하나 따라가면서 배열을 구성하고 해당 배열로 값을 구하는 방법 이었다.

하지만 이 경우에서 Linked list 의 길이가 무지하게 커지면 계산 해야하는 배열의 길이도 커지기에 입력값이 큰 경우 시간에 맞춰서 결과를 얻지 못하였다. 이에 대해 별다른 해결 방법이 떠오르지 않아 이 문제를 풀면서 논의한 기록을 참고 하였다. 참고 한 내용을 바탕으로 풀이한 방법은 다음과 같다.

Linked list를 순차적으로 확인하는 데 중간을 확인할 변수와 끝을 확인할 변수를 정의하였다.
그리고 중간을 확인할 변수가 한번 노드를 옮길때 끝을 확인할 변수는 추가로 한번더 노드를 옮겼다(옮길 노드가 있을경우에 한하여).

그렇게 Linked list의 중간 위치를 확인한뒤 해당 Linked list를 역순으로 재구성하는 과정을 진행하였다. 그리고 재구정 된 Linked list 와 입력 된 Linked list를 같은 순서로 값을 확인하면 sum 값을 구하고 최대값을 확인 하는 방식을 취하였다.

이후 전체 과정을 보면 더 많이 반복을 수행하는듯한 참고 풀이 방식이 더 빠른지 확인하기위해 이전 풀이 방식을 확인하였다. 결론부터 말하자면 배열에 값을 넣는 방식으로 인해 속도 저하가 발생하였다. 잘못된 정보로 인해 전개 방식으로 값을 추가하였고 그것이 전체적인 속도를 느리게하는 원인이 되었다. 이를 push 방식이나 인덱스를 입력하여 값을 입력 하는 방식으로 수행하게되면 효율적인 결과를 보여주었다.


남은 것

클라이언트

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

서버

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

데이터베이스

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

코딩 문제 풀이 잘못된 폴더 선택 문제

  • 커밋기록 유지한채로 폴더 옮기는 법 찾는 중

공부 할 것(꾸준히)


오늘은...

회복중.

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

0개의 댓글