2 minute read


blog

문제 정해졌고 오늘부터 풀이 예정.

근데, 여기서 적어놓은 private 포스트들 못옮기는거 아니겠지??

job

GOP-14062 작업 - 티켓 정리, 계획 정리, 흐름 재설계

도대체 테스트를 어떻게 할 것인가? redis를 mock하면 가능할 듯도 한데, 그러면 유닛 테스트와 별반 다를 게 없다. 그래도 의미는 있을지도??

추가 문서 읽기

문제 생겼을때를 위해 운영 관련 다양한 문서 읽어두는 중.

GOP-14062 작업 - 테스트 설계

설계 시작해보기. rxjs상으로도 생각 좀 해야함.

fixture에 유저 집합이 정해진 액션들을 순차 처리하도록 하고, 그렇게 했을 때 예상대로 동작하도록..

study

rxjs 공부 8 - hello rxjs 실습

https://streami.atlassian.net/wiki/spaces/LAB/pages/819789946/Hello+RxJS

위 문서에 있는 예제들 한번씩 읽어보고, 배포 및 실행해봄 응용까지는 패스, 근데 예제 중에 스로틀링하는게 있는게 그런 걸 그냥 대기 시스템에 적용할 수 있다면 좋겠지만, 단순 그런 방법으로는 대기 요청들이 멈춰있고 정보를 얻을 수 없기 때문에 안될 것 같다. 또한 다중화되어있는 부분도 문제다.

일단 티켓 정리 다시 해보자.

sport

적용사항:


  sport:
    - [x] leetcode - https://leetcode.com/problems/add-two-numbers/ @started(22-01-12 18:55) @done(22-01-12 19:15) @lasted(20m46s)

leetcode - https://leetcode.com/problems/add-two-numbers/

런타임 에러 2번

  1. 반복문에서 다음 커서로 옮겨주는것 빼먹음.
  2. 리스트 끝에 달한 경우에도 다음 커서로 옮기려 해서 에러남.
ts solution
/**
 * Definition for singly-linked list.
 * class ListNode {
 *     val: number
 *     next: ListNode | null
 *     constructor(val?: number, next?: ListNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.next = (next===undefined ? null : next)
 *     }
 * }
 */

function addTwoNumbers(l1: ListNode | null, l2: ListNode | null): ListNode | null {
    let cur = 0;
    let l1cur = l1;
    let l2cur = l2;
    let l1done = l1cur === null;
    let l2done = l2cur === null;
    let prevNode = null;
    let up = false;
    let head = null;
    
    while (!(l1done && l2done)) {
        const curNode = new ListNode();
        
        if (up) {
            curNode.val += 1;
            up = false;
        }
        if (!l1done) {
            curNode.val += l1cur.val;
            l1cur = l1cur.next;
        }
        if (!l2done) {
            curNode.val += l2cur.val;
            l2cur = l2cur.next;
        }
        if (curNode.val >= 10) {
            up = true;
            curNode.val -= 10;
        }
        if (prevNode) {
            prevNode.next = curNode;
        } else {
            head = curNode;
        }
        
        l1done = l1cur === null;
        l2done = l2cur === null;
        prevNode = curNode;
    }
    
    // if end with up, add one more on tail
    if (up) {
        const curNode = new ListNode();
        prevNode.next = curNode;
        curNode.val = 1;
        up = false;
    }
    
    return head;
};

Comments