문제 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려 고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인 이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에 는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인 형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장..
문제 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요. 풀이 function solution(s) { let answer = ""; let stack = []; for (let x of s) { if (x === ")") { while (stack.pop(x) !== "("); } else stack.push(x); } //console.log(stack); answer = stack.join(""); return answer; } let str = "(A(BC)D)EF(G(H)(IJ)K)LM(N)"; console.log(solution(str)); " ) " 를 만났을 때 while 문으로 (이 나올때 까지 stack을 pop 시킵니다...
문제 괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다. 풀이 function solution(s) { let answer = "YES"; let stack = []; let first, last = ""; (first = s[0]), (last = s[s.length - 1]); if (first !== "(" || last !== ")") return "NO"; for (let x of s) { if (x === "(") stack.push(x); else { if (stack.length === 0) return "NO"; stack.pop(); } console.log..
문제 S문자열에서 T문자열과 아나그램이 되는 S의 부분문자열의 개수를 구하는 프로그램을 작성하 세요. 아나그램 판별시 대소문자가 구분됩니다. 부분문자열은 연속된 문자열이어야 합니다. 풀이 function solution(s, t) { let answer = ""; let str = ""; s = s.split(""); t = t.split(""); let map2 = new Map(); for (let x of t) { if (map2.has(x)) map2.set(x, map2.get(x) + 1); else map2.set(x, 1); } //console.log(map2); for (let i = 0; i < s.length - t.length + 1; i++) { str = ""; let map1..
문제 Anagram이란 두 문자열이 알파벳의 나열 순서를 다르지만 그 구성이 일치하면 두 단어는 아 나그램이라고 합니다. 예를 들면 AbaAeCe 와 baeeACA 는 알파벳을 나열 순서는 다르지만 그 구성을 살펴보면 A(2), a(1), b(1), C(1), e(2)로 알파벳과 그 개수가 모두 일치합니다. 즉 어느 한 단어를 재 배열하면 상대편 단어가 될 수 있는 것을 아나그램이라 합니다. 길이가 같은 두 개의 단어가 주어지면 두 단어가 아나그램인지 판별하는 프로그램을 작성하세 요. 아나그램 판별시 대소문자가 구분됩니다. 풀이 function solution(str1, str2) { let answer = "YES"; const map1 = new Map(); for (let x of str1) { i..
문제 학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다. 투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를 발표하고 있습니다. 선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작 성하세요. 반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다. 풀이 function solution(s) { let answer; s = str.split(""); let max = Number.MIN_SAFE_INTEGER; // console.log(s); let object = { A: 0, B: 0, C: 0, D: 0, E: 0 }; for (let i = 0; i < s.length; i..
문제 현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속 된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다. 만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면 12 15 11 20 25 10 20 19 13 15 연속된 3일간의 최대 매출액은 11+20+25=56만원입니다. 여러분이 현수를 도와주세요. 풀이 function solution(k, arr) { let answer, sum = 0; let rt = 0, lt = 0; let max = Number.MIN_SAFE_INTEGER; for (let i = 0; i k) sum ..
문제 N개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속부분수열의 합이 특정숫자 M이하가 되는 경우가 몇 번 있는지 구하는 프로그 램을 작성하세요. 만약 N=5, M=5이고 수열이 다음과 같다면 1 3 1 2 3 합이 5이하가 되는 연속부분수열은 {1}, {3}, {1}, {2}, {3}, {1, 3}, {3, 1}, {1, 2}, {2, 3}, {1, 3, 1}로 총 10가지입니다. 풀이 function solution(m, arr) { let answer = 0, lt = 0, sum = 0; for (let rt = 0; rt m) { sum -= arr[lt+..
- Total
- Today
- Yesterday
- jest
- nodejs
- 스토리 북
- javascript
- env
- createPortal
- electron
- import/order
- 노개북
- 위코드
- C언어
- 우아한테크코스
- CLASS
- 아차산
- 프론트앤드
- 프리온보딩
- TopLayer
- Storybook
- 윤성우 열혈C프로그래밍
- WSL2
- 원티드
- nextjs
- 노마드코더
- NextRequest
- React
- 초보
- 북클럽
- error
- NextApiRequest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |