깊은바다거북
개발 공부 기록
깊은바다거북
전체 방문자
오늘
어제
  • 분류 전체보기 (219)
    • JAVA (9)
    • JavaScript (15)
    • 스파르타코딩클럽 (11)
      • [내일배움단] 웹개발 종합반 개발일지 (5)
      • [내일배움캠프] 프로젝트와 트러블 슈팅 (6)
    • SQL | NoSQL (4)
    • CS 등등 (0)
    • TIL | WIL (173)
    • 기타 에러 해결 (3)
    • 내 살 길 궁리 (4)

인기 글

최근 글

최근 댓글

태그

  • 자바스크립트 기초 문법
  • BFS(너비우선탐색)
  • Leetcode
  • 코딩테스트 연습문제
  • leetcode-cli
  • POST / GET 요청
  • 프로그래머스
  • 팀 프로젝트
  • 시간 복잡도
  • Linked List
  • 자료 구조
  • 점화식(Recurrence Relation)
  • 자잘한 에러 해결
  • 혼자 공부하는 자바스크립트
  • Binary Tree(이진 트리)
  • 최대 힙(Max Heap)
  • TypeScript
  • 트러블 슈팅 Troubleshooting
  • BST(이진 탐색 트리)
  • Inorder Traversal(중위 순회)
  • 최소 힙(Min Heap)
  • Trie
  • 01. 미니 프로젝트
  • Backtracking(백트래킹)
  • Preorder Traversal(전위 순회)
  • TIT (Today I Troubleshot)
  • tree
  • DFS(깊이우선탐색)
  • 재귀 함수
  • Til
hELLO · Designed By 정상우.
깊은바다거북

개발 공부 기록

TIL | WIL

8/22 (화) LeetCode API 조사중 TIL, TIT

2023. 8. 22. 23:59

공부한 것

  • LeetCode #287. Find the Duplicate Number
    LeetCode - The World's Leading Online Programming Learning Platform
    Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
    https://leetcode.com/problems/find-the-duplicate-number/description/?envType=list&envId=rus4c4ci

    어제 배운 Floyd’s Tortoise & Hare Algorithm을 응용하는 문제를 바로 만났다. 어쩐지 문제도 키워드도 전혀 linked list에 관련되어 보이지 않는데 linked list 문제 모음에 포함되어있다 했더니, 이런 미묘한 응용문제였을 줄이야. 풀이는 Leetcode와 GitHub 레파지토리에 올렸으므로 생략한다.

구상 중

  • 문제풀이 코드 제출 후 실행 결과를 여러 개 모아서 소요 메모리와 시간 추이를 시각화하기:
    1. Node.js에서 실행한다 → 기각

      : 그래프로 시각화하면 결과를 볼 수 있는 방법이 png 등의 이미지 파일로 저장하고 따로 열어보는 수밖에 없어서 기각했다. 내가 원하는 건 실행 시점에 바로바로 추이를 살펴보는 것이지 따로 파일을 열어야 하고 심지어 저장까지 되는 기능이 아니다.

    1. 브라우저에서 실행한다 → Leetcode의 CORS 정책에 걸림

      : 이런 식으로 생긴 Leetcode 페이지에서 제출한 여러 submissions 결과를 추출하고 싶었으나 브라우저에서 바로 보내는 HTTP 요청은 CORS 정책에 막힌다.

    1. 로컬 서버가 브라우저에 렌더링하게 만든다 → 내가 원하는 정보인 submissions 항목은 개인정보에 해당함

      : Express 서버를 간단히 만들어 서버를 실행시키고, axios로 HTTP 요청을 보낸 후, 응답으로 받는 html을 cheerio로 구문분석하여 원하는 정보를 뽑고, 마지막으로 간단한 ejs 템플릿을 만들어 서버사이드 렌더링해주었다. 그러나 axios 등으로 단순 페이지를 요청하면 로그인 없는 결과가 응답되어 원하는 데이터(submissions 정보)가 포함되어 있지 않았다. 로그인 정보와 함께 접근할 수 있는 방법을 찾아야 했다.

    1. 로그인 + 유저의 정보 중 submissions 정보에 접근하는 방법들(다음 Leetcode 질문 페이지의 답변을 전부 살펴봤다: https://leetcode.com/discuss/general-discussion/1297705/is-there-public-api-endpoints-available-for-leetcode):
      • 방법1: https://github.com/JeremyTsaii/leetcode-stats-api

        ⇒ 주소 끝에 내 Leetcode 유저ID를 입력하기만 하면 JSON 결과를 받아볼 수 있는 방법. 로그인해야 얻을 수 있는 정보는 볼 수 없다(submissions의 구체적인 항목이 나오지 않는다)는 점에서 탈락.

      • 방법2:

        ⇒ 주소 끝에 Leetcode 유저ID르 ㄹ입력하기만 하면 JSON 결과를 받아볼 수 있는 방법. 역시나 탈락이다.

      • 방법3: https://github.com/akarsh1995/leetcode-graphql-queries

        ⇒ 로그인에 딱 필요한 EETCODE_SESSION 와 csrftoken 쿠키를 언급하고 있는 걸로 보아 로그인을 하는 것은 확실해보이나, 내가 GraphQL 쿼리를 잘 모르고 샘플 결과에서 submissions 항목도 특별히 보이진 않아서 패스했다.

      • 방법4: https://github.com/realvect0r/leetcode-api

        ⇒ 이곳을 보다가 방법5로 넘어감. 보류중

      • 방법5: https://github.com/skygragon/leetcode-cli

        진행중 (수많은 트러블슈팅은 다음에 이어서…)


Uploaded by N2T

    'TIL | WIL' 카테고리의 다른 글
    • 8/24 (목) 퀴즈 풀이 디렉토리에 TypeScript를 적용하다 TIL, TIT
    • 8/23 (수) Binary search 와 Bit mask 해법 TIL
    • 8/21 (월) 풀이 제출 후 소요 시간 시각화하기 TIL, TIT
    • 8/19 (토) 퀴즈풀이도 타입스크립트로 써볼까 TIL
    깊은바다거북
    깊은바다거북

    티스토리툴바