2022/08/18 목요일

Gong Intaek·2022년 8월 18일
0

일상

목록 보기
435/1016
post-thumbnail

오늘 한 일

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

문제 풀이

Smallest String With Swaps (medium)Github

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

풀이 시도 6

문자열을 배열로 바꾸어서 풀이하는 것이 문제가 되는가 생각이 들어 문자열로 놔둔상태로 풀이를 진행해보았다. 이경우 배열처럼 각위치의 값을 구조 분해 할당으로ㅂ 바꿀수 없으므로 주어진 두문자의 앞, 중간, 뒤를 분리하여 재조립하는 방향으로 진행하였다.

주어지는 위치변환 페어에는 인덱스의 위치가 작은순으로 정리되넋이 아니므로 이에 따른 정리를 진행하고, 동일한 위치를 언급하는것도 있어서 이를 제하고 하여 풀이한결과는 풀이시도 5번의 에러지점이었다. 돌고 돌아 제자리랄까.

쩝 .. 더 고민해봐야겠다.

풀이중

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

문제가 되었던 네스팅 구조를 별개 컴포넌트화하였고, 대략적인 클라이언트의 뼈대작업을 마무리하였다. 내일부터는 서버 작업을 진행하려고 한다. 목업 데이터를 만들어서 DB를 구축을하고나면 본격적인 graphql 학습을 진행할수 있을듯하다.


진행 중단중인 프로젝트

socket.io - chatapp

홈페이지 만들기

pathfinder(미로 길찾기 게임)

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

0개의 댓글