• 코딩문제풀이

    • [프로그래머스 lv1] 2024 KAKAO WINTER INTERNSHIP 가장 많이 받은 선물
      이차원 배열해시테이블을 이용해서 풀이

      function solution(friends, gifts) {
         const result = [];
         const giftNumber = {};
      
         const friendsIndex = {};
         friends.forEach((friend, idx) => {
           friendsIndex[friend] = idx;
           giftNumber[idx] = [0, 0, 0];
           result[idx] = 0;
         });
      
         const list = Array.from({ length: friends.length })
           .fill()
           .map(() => Array(friends.length).fill(0));
      
         gifts.forEach((gift) => {
           const [give, take] = gift.split(" ");
           list[friendsIndex[give]][friendsIndex[take]]++;
           giftNumber[friendsIndex[give]][0]++;
           giftNumber[friendsIndex[take]][1]++;
           giftNumber[friendsIndex[give]][2] =
             giftNumber[friendsIndex[give]][0] - giftNumber[friendsIndex[give]][1];
           giftNumber[friendsIndex[take]][2] =
             giftNumber[friendsIndex[take]][0] - giftNumber[friendsIndex[take]][1];
         });
      
         friends.forEach((friend, idx) => {
           for (let i = idx; i < friends.length; i++) {
             if (idx === i) continue;
      
             if (list[idx][i] > list[i][idx]) {
               result[idx]++;
             } else if (list[idx][i] < list[i][idx]) {
               result[i]++;
             } else {
               if (giftNumber[idx][2] > giftNumber[i][2]) {
                 result[idx]++;
               }
               if (giftNumber[idx][2] < giftNumber[i][2]) {
                 result[i]++;
               }
             }
           }
         });
      
         return Math.max(...result);
      }
      
    • [백준 2164번 실버4] 카드2
      자바스크립트로 queue, deque를 이용해서 풀려고 했지만 시간 초과로 실패해서 파이썬 deque 라이브러리를 이용하여 풀이

      from collections import deque
      
      A = int(6)
      card = list(range(A,0,-1))
      
      d = deque(card)
      
      while len(d) != 1:
        d.pop()
        d.appendleft(d.pop())
      
      print(d[0])
      
    • [백준 10816번 실버4] 숫자 카드 2
      해시 테이블 이용해서 풀이 ({key: value})
      유사문제 [백준 1920번 실버4] 수찾기 도 코드가 똑같아서 같이 풀이

      const fs = require("fs");
      const input = fs
        .readFileSync("doc.txt")
        .toString()
        .trim()
        .split("\n")
        .map((x) => x.replace("\r", ""));
      
      const N = +input[0];
      const M = +input[2];
      
      const card = input[1].split(" ");
      const quition = input[3].split(" ");
      
      const result = [];
      const obj = {};
      
      card.forEach((el) => (obj[el] ? obj[el]++ : (obj[el] = 1)));
      
      quition.forEach((el) => (obj[el] ? result.push(obj[el]) : result.push(0)));
      
      console.log(result.join(" "));
      
  • AWS 강의 내용 복습 - [해당글] 프로세스

profile
프론트엔드 개발자가 되기 위해 공부 중입니다.

0개의 댓글