알고리즘8 [99클럽] 알고리즘 TIL: 백준 10845번 큐 - JavaScript 문제링크https://www.acmicpc.net/problem/10845풀이방법이전 백준 10828 스택 문제풀이와 동일한 방식으로 진행했다.queue 객체를 만들어 각 메서드를 정의하였고, for loop를 돌며 result를 업데이트 한 후 최종 업데이트 된 result를 출력했다.const readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout,});const input = [];rl.on("line", (line) => { input.push(line);});const queue = { data: [], push: function (x) { thi.. 2025. 2. 5. [99클럽] 알고리즘 TIL: 백준 17608번 막대기 - JavaScript 문제링크https://www.acmicpc.net/problem/17608풀이방법막대기를 처음부터 순차적으로 살펴볼까 고민했지만 보이는 여부를 하나하나 체크하기엔 복잡할 것이라는 생각이 들어서, 바라보는 시각인 마지막부터 실행을 시키면 단순하게 풀 수 있을 것이라는 생각이 들었다.바라보는 관점에서는 무조건 앞 순서보다 길이가 긴 막대기만 보일 것이기 때문에 이를 기준으로 로직을 구현했다.보이는 개수를 count=0으로 할당하고, 현재 낮은 높이를 min=0으로 할당한다.만약 현재 값이 min값보다 같거나 작으면 안 보이기 때문에 continue로 넘어간다.그렇지 않다면 현재 시각에서 보이는 막대기이기 때문에 count++를 해주고, min값을 현재 값 기준으로 업데이트 해준다.반복문 종료 후 count를.. 2025. 2. 4. [99클럽] 알고리즘 TIL: 백준 10828번 스택 - JavaScript 문제링크https://www.acmicpc.net/problem/10828풀이방법처음에는 switch문으로 따로 만들어서 사용할까 했지만, 객체로 만드는 것이 호출할 때도 stack.pop(), stack.pop() 등의 형태로 호출할 수 있어 직관적이라고 생각하여 객체 형식으로 만들었다.처음에는 for문을 돌면서 push인 경우를 제외하고 바로 console.log로 결과값을 출력했는데 시간초과가 발생했다. 이를 해결하기 위해 console.log를 바로 출력하지 않고 string 형태의 result를 업데이트하고 for문이 종료된 후 한 번만 호출하는 방식으로 변경하여 해결했다.const readline = require("readline");const rl = readline.createInterf.. 2025. 2. 3. [99클럽] 알고리즘 TIL: 백준 32953번 회상 - JavaScript 문제링크https://www.acmicpc.net/problem/32953풀이방법N, M이 주어지는 0번 인덱스를 제외하고, 짝수 인덱스에 클래스를 듣는 학생들의 학번이 있다.학번을 split을 활용하여 배열로 만들고, 학번을 key로 잡고 학번마다 듣는 클래스 수를 value로 잡는다.key값에 대한 value가 존재하지 않을 경우, value를 1로 세팅하고 value가 존재할 경우 이전 값에서 1을 더해준다.Map을 순회하며 value가 M 이상인 key값의 수를 세어 출력한다.const readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout,});co.. 2025. 1. 24. [99클럽] 알고리즘 TIL: 백준 31562번 전주 듣고 노래 맞히기 - JavaScript 문제링크https://www.acmicpc.net/problem/31562풀이방법첫번째 라인부터 N라인까지 순회하며 song과 notes 배열을 만든다notes 배열에서 앞 3자리만 slice로 꺼내 하나의 문자열로 join 하여 'firstNotes'에 할당한다.firstNotes를 key로 잡고, 만약 for 루프를 돌며 이미 value가 존재하는 경우는 중복으로 판단하여 문제에 제시된 조건에 따라 "?"를 value로 대체하고 value가 없는 경우에는 song을 value로 추가한다.N+1 라인부터 N+M 라인까지는 문제들이 나열되어 있다.문제 라인을 하나의 문자열로 변환하여 firstNotes에 할당한다.noteMapping에 firstNotes와 일치하는 key가 있다면 value를 그대로 출.. 2025. 1. 24. [99클럽] 알고리즘 TIL: 백준 27160번 할리갈리 - JavaScript 문제링크https://www.acmicpc.net/problem/27160 풀이방법입력값에서 fruit과 장수를 분리한다.Map을 사용하여 fruit별로 총 장수를 업데이트 한다.Map을 순회하며 총 count가 5가 나오면 "YES"를 반환하고 순회가 종료되었다면 "NO"를 출력한다.const readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout,});const input = [];rl.on("line", (line) => { input.push(line);});rl.on("close", () => { const cardsCount = Number(inp.. 2025. 1. 21. 이전 1 2 다음 반응형