2022/08/25 목요일

Gong Intaek·2022년 8월 25일
0

일상

목록 보기
442/1022
post-thumbnail

오늘 한 일

  • leetcode
    • Smallest String With Swaps (medium)
  • 실내 운동

문제 풀이

Smallest String With Swaps (medium)Github

문자열이 주어지고 페어관계가 있는 인덱스 배열이 주어진다. 이를 통하여 만들수 있는 사전적으로 가장 작은 단어를 만들라.

풀이 완료

완성된 그룹나누기에 나눠진 그룹의 총 문자열 관리를 위해 작업 수행중 문자열을 순서에 맞추어 기입하는 구조를 추가하려고 하였으나, 이것이 많은 연산을 필요로 하는지 시간초과의 결과를 얻게 되었다.

따라서 최종 결과물에서 문자열을 정리하는 방향으로 수정. 이후 문자열을 순서대로 재구성하되 위의 그룹나누기에 참여한경우 나눠진 그룹에 따라 문장를 배정받게 하였고, 그외의 경우 기존의 문자열을 그대로 붙이는 방향으로 코드를 작성하였다.

그리고 드디어 문제 풀이를 완수 할수 있었다.

풀이중

최적의 행렬 곱셈 (Level 3)Github

주어지는 행렬 크기 배열을 행렬 곱을 진행하여 연산횟수를 구하였을 때 최소의 연산횟수를 돌려주는 문제.

문제가 되는 예문
// 테스트 2
입력값 〉   [[7, 1], [1, 6], [6, 6], [6, 5], [5, 8], [8, 9], [9, 9], [9, 2], [2, 1], [1, 9]]
기댓값 〉	349
풀이과정 : 
	1. [7, 1]
	2. [[1, 6], [6, 6], [6, 5], [5, 8], [8, 9], [9, 9], [9, 2], [2, 1]] 279
	3. [[7, 1], [1, 1], [1, 9]] => 7*1*1 + 7*1*9 =70 
	4. 279 + 70 = 349

// 테스트 3 
입력값 〉	[[3, 9], [9, 5], [5, 2], [2, 2], [2, 7], [7, 4], [4, 5], [5, 9], [9, 4], [4, 6]]
기댓값 〉	498
풀이 과정 : 
	1. [[3, 9], [9, 5], [5, 2]], [[2, 2]], [[2, 7], [7, 4], [4, 5], [5, 9], [9, 4], [4, 6]] 로 나누어  나누니것끼리 우선 계산.
    2. [[3, 2], [2, 2], [2, 6]] 을 얻을수 있으며 이때의 연산횟수는 450이다.
    3. [[3, 2],[2, 2]]을 먼저 연산하고 나머지를 연산한다. 이 경우 12 + 36 으로 총 48의 연산 횟수를 얻게 된다.
    4. 따라서 최종적으로 498의 현산횟수를 가지게 되며 이는 예측된 최소값과 일치한다.

추후 진행 예정인 작업

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

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


학습 진행


오늘은...

graphql 학습중

이전 작업의 연결과정에서 graphql-hooks의 상요감이 좋지 않았음을 이야기하긴했지만 해당 쿼리 사용이 랜더 되는 함수내에서 그대로 사용 되어야 하는 조건을 요구하기에 이런저런 조건 부사용이 매우까다 롭다는것을 재확인하였다.

따라서 원할한 사용을 위해 axios 사용으로 방향을 수정해야할것 같다. 어찌되었건 서부 코멘트 연결 까지 진행하는 와중에 저러한 이슈가 생겨 해당작업을 다시 진행해봐야 할듯하다. 내일은 뮤테이션 적용과 생성 부분을 테스트하는것 까지 진행할수 잇으면 좋겠다.


진행 중단중인 프로젝트

socket.io - chatapp

홈페이지 만들기

pathfinder(미로 길찾기 게임)

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

0개의 댓글