2022/08/21 일요일

Gong Intaek·2022년 8월 21일
0

일상

목록 보기
438/1016
post-thumbnail

오늘 한 일

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

문제 풀이

Smallest String With Swaps (medium)Github

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

풀이 고민중

문제가 되는 지점의 문자열의 길이는 10만 연관된 문자의 갯수는 8만 개이상 그것들의 관계를 구하고 그 관계에 따르는 최소 문자열을 구할 방법이 떠오르지 않는다. 우선은 저렇게 큰 경우의 문자간의 관곌르 빠르게 구할수 있는 방법을 찾아 보고자 한다.

풀이중

최적의 행렬 곱셈 (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로 구현해보기.


학습 진행


오늘은...

codesandbox 서버 대체 가능성 제로

이전에 코드샌드박스에서 제공하는 초기화 템플레이트를 확인하다가 이전에 보지못했던(있는데 못본건지 없었던 건지는 가물가물하다.) 서버 관련 템플레이트를 본적이 있다.

이것을 사용하여 aws 서버를 대체할수 있는가에 대한 의문이 들어 이를 시도 해보고자 하였다. 우선 서버 사용을 확인하기위해 단순한 요청을 가지는 express 서버를 구현하여 테스트를 진행하였고 이것은 가볍게 넘어갈수 있었다.(필요 요소 몇개를 빼먹어서 잠시 혼란이 왔던건 안비밀...)

이후는 mongodb Atlas와 연결 하여 동작 여부를 확인하는 것. 여기서 첫번째 고비가 왔는데 코드샌드박스 실행부의 ip를 어떻게 알아낼까하는 것이다.

우선은 모든 ip를 허용한상태에서 테스트를 진행 잘 동작하는것을 확인하였고 특정 아이피로 제한하는것을 적용하기위해 이런 저런 검색...

얻어진 결론은 서버 자체적으로 아이피를 검사하게 하여 출력값을 확인 하는 방식이다. api route 하나에 출력값을 돌려주게 하여 아이피를 획득 atlas의 network 에 ip를 등록 하여 동작성공.

이것으로 끝일줄 알았다.. 후.. 우선 express 에서 벗어나서 배포하고자 하는 nest.js 서버를 복사 붙여넣기로 샌드박에서 집어 넣고 여타 설정을 마치고 ip도 등록하여 동작 성공. 하지만 어떤기작으로 진행되는지는 모르겟지만 ip가 변동한다. 해서 하나의 아이피로 확정하면 중간중간 동작을 안하는 사태가 발생. ip 구조를 다시 한번 학습을 진행하고 어지저찌 해결.

하지만 최종적으로 문제가 있었는데 코드 샌드 박스의 서버는 일정 시간이 지나고 잠기는 모습을 보여주었다. 따라서 계속 돌아가는 서버의 대체는 불가하였다.

  • 코드샌드박스에 배포된 연구 프로젝트 서버 링크

  • 위 서버를 기반으로 구동되는 클라이언트 링크


진행 중단중인 프로젝트

socket.io - chatapp

홈페이지 만들기

pathfinder(미로 길찾기 게임)

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

0개의 댓글