2022/08/20 토요일

Gong Intaek·2022년 8월 20일
0

일상

목록 보기
437/1015
post-thumbnail

오늘 한 일

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

문제 풀이

Smallest String With Swaps (medium)Github

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

풀이 시도 8

풀이 방식은 이전의 시도와 유사하게 진행하되 부모 인덱스를 찾던 부분을 수정하여 다른 부모에 편입시 해당 요소의 모든 부모 값을 수정해주는 방향으로 진행하였다. 또한 연과노딘 무자열들의 순서를 미리 정리하여 바로 사용할수 있게 수정하였다. 하지만 문자열만 신경쓰다보니 연관된 인덱스의 정렬은 미처 생각하지 못하여 단순히 sort를 사용하여 처리하였다.

그러헥 얻은결과는 여전히 이전 시도에서의 실패장소에서 멈추어버렸다. 다른 아이디어를 찾아봐야겠다.

풀이중

최적의 행렬 곱셈 (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 학습

이러나 저러나 데이터가 있어야 테스트를 해보고 적절한 방식을 찾을수 있을듯하여 다시 목업 데이터 생성으로 복귀하여 생성 파일을 작성하였다. 그렇게 mongodb Atlas에 데이터를 입력하여 목업데이터 구성을 완료 서버에서 해당 데이터를 불러올수 있게 스키마 모델을 별도의 폴더에 생성 서버와 연결하고 resolve 함수에 mongoose를 연결하여 데이터를 불어오는 것까지 테스트를 마쳤다.

이제는 적절한 범위지정 사용법등등을 테스트 해봐야겠다.


진행 중단중인 프로젝트

socket.io - chatapp

홈페이지 만들기

pathfinder(미로 길찾기 게임)

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

0개의 댓글