본문 바로가기

전체 글198

[JS] 코딩 테스트 문제 : 버블정렬 문제 : 버블정렬 문제 설명 N 개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 버블정렬입니다. ▣ 입력설명 첫 번째 줄에 자연수 N(1= 0; i--) { let left = answer[0]; for (let j = 1; j answer[j]) { answer[j - 1] = answer[j]; answer[j] = left; } left = answer[j]; } console.log(answer); } // 보완코드 for (let i = arr.length - 1; i > 0; i--) { console.log(i); for (let j = 0; j arr[j + 1]) { [arr[j], arr[j + 1].. 2024. 1. 8.
[JS] 코딩 테스트 문제 : 선택 정렬 문제 : 선택 정렬 문제 설명 N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다. ▣ 입력설명 첫 번째 줄에 자연수 N(1 2024. 1. 8.
[JS] 코딩 테스트 문제 : 교육과정 설계 [큐] 문제 : 교육과정 설계 문제 설명 현수는 1년 과정의 수업계획을 짜야 합니다. 수업중에는 필수과목이 있습니다. 이 필수과목은 반드시 이수해야 하며, 그 순서도 정해져 있습니다. 만약 총 과목이 A, B, C, D, E, F, G가 있고, 여기서 필수과목이 CBA로 주어지면 필수과목은 C, B, A과목이며 이 순서대로 꼭 수업계획을 짜야 합니다. 여기서 순서란 B과목은 C과목을 이수한 후에 들어야 하고, A과목은 C와 B를 이수한 후에 들어야 한다는 것입니다. 현수가 C, B, D, A, G, E로 수업계획을 짜면 제대로 된 설계이지만 C, G, E, A, D, B 순서로 짰다면 잘 못 설계된 수업계획이 됩니다. 수업계획은 그 순서대로 앞에 수업이 이수되면 다음 수업을 시작하다는 것으로 해석합니다. 수업계.. 2024. 1. 8.
[JS] 코딩 테스트 문제 : 공주 구하기 [큐] 문제 : 공주 구하기 문제 설명 정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다. 정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다. 왕은 왕자들을 나이 순으로 1번부터 N번까지 차례로 번호를 매긴다. 그리고 1번 왕자부터 N 번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 그리고 1번 왕자부터 시계방향으로 돌아가며 1부터 시작하여 번호를 외치게 한다. 한 왕자가 K(특정숫자)를 외치면 그 왕자는 공주를 구하러 가는데서 제외되고 원 밖으로 나오게 된다. 그리고 다음 왕자부터 다시 1부터 시작하여 번호를 외친다. 이렇게 해서 마지막까지 남은 왕자가 공주를 구하러 갈 .. 2024. 1. 8.
[JS] 코딩 테스트 문제 : 쇠막대기 [스택] 문제 : 쇠막대기 문제 설명 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. • 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. • 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. • 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다. 아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향이다. 이러한 레이저와 쇠막대기의 .. 2024. 1. 6.
[JS] 코딩 테스트 문제 : 후위식 연산(postfix) [스택] 문제 : 후위식 연산(postfix) 문제 설명 후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요. 만약 3(5+2)-9 을 후위연산식으로 표현하면 `352+9-` 로 표현되며 그 결과는 12입니다. ▣ 입력설명 첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다. 식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다. ▣ 출력설명 연산한 결과를 출력합니다. ▣ 입력예제 1 352+*9- ▣ 출력예제 1 12 내코드 function solution(s) { let answer; let stack = []; let regex = /[\+\-\*\/]/; // 사칙연산 문자 확인용 정규식 for (const word of s) { // 사칙연산 문자일 경우 if .. 2024. 1. 4.
[JS] 코딩 테스트 문제 : 크레인 인형뽑기(카카오 기출) [스택] 문제 : 크레인 인형뽑기(카카오 기출) 문제 설명 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에.. 2024. 1. 4.
[JS] 코딩 테스트 문제 : 괄호 문자 제거 [스택] 문제 : 괄호 문자 제거 문제 설명 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다. ▣ 출력설명 남은 문자만 출력한다. ▣ 입력예제 1 (A(BC)D)EF(G(H)(IJ)K)LM(N) ▣ 출력예제 1 EFLM 내코드 function solution(s) { let answer; let stack = []; // 문자열만큼 순회 for (let i = 0; i < s.length; i++) { let word = s[i]; // 현재 문자가 ")" 인 경우 if (word === ")") { // j : stack 의 lastIndex 를 의미 let j = s.. 2024. 1. 4.
[JS] 코딩 테스트 문제 : 올바른 괄호 [스택] 문제 : 올바른 괄호 문제 설명 괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다. ▣ 입력설명 첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다. ▣ 출력설명 첫 번째 줄에 YES, NO를 출력한다. ▣ 입력예제 1 (()(()))(() ▣ 출력예제 1 NO 내코드 function solution(s) { let answer = "YES"; let stack = []; // 문자열 길이 만큼 순회 for (const word of s) { // 문자가 &#39;)&#39; 인 경우 if (word === ")") { // stack 에 남은게 없다면 쌍.. 2024. 1. 4.
[React 18. 2] 공식 문서 훑으면서 몰랐던 부분 찾아보기 React 애플리케이션의 성능 측정을 위해 사용되는 컴포넌트 각각의 컴포넌트가 얼마나 자주 렌더링되는지, 렌더링에 얼마나 시간이 걸리는지 등을 측정할 수 있습니다. react-dev-tools 에 profile 탭에서 성능 관련 정보를 확인 할 수 있다. Props id: id onRender: (param) => {} param id: 방금 커밋한 트리 id의 문자열 소품입니다. 이를 통해 여러 프로파일러를 사용하는 경우 트리의 어느 부분이 커밋되었는지 식별할 수 있습니다. phase: "mount", "update"또는 "nested-update". 이를 통해 트리가 처음으로 마운트되었는지 아니면 소품, 상태 또는 후크의 변경으로 인해 다시 렌더링되었는지 알 수 있습니다. actualDuration:.. 2024. 1. 4.
React 에서 이벤트 위임 하지 않는 이유 상황 React 로 개발하던 와중 문득 기존에 개발하던 방식에 의문이 생겼다. 이벤트를 처리할 때 각 요소에 일일이 등록해서 사용했던 점이었다. (아마도 react 를 배우고 개발하면서 봐온 일반적인 코드들의 형태들에 익숙해진 것 같음) 어째서 바닐라 js 로 개발할 때처럼 addEventListener 를 활용한다거나 이벤트 위임하는 방식으로 처리하지 않는지 찾아보게 됐다. 해결 찾아보니 github 에서 비슷한 질문과 답변이 있었다. 답변 중 일부: React doesn&#39;t attach your click event handlers to the nodes. It uses event delegation and listens at the document level. (React는 클릭 이벤트 핸들.. 2023. 12. 22.
[JS] 코딩 테스트 문제 : 모든 아나그램 찾기 [해쉬, 투포인터, 슬라이딩 윈도우] 문제 : 모든 아나그램 찾기(해쉬, 투포인터, 슬라이딩 윈도우) 문제 설명 S문자열에서 T문자열과 아나그램이 되는 S의 부분문자열의 개수를 구하는 프로그램을 작성하 세요. 아나그램 판별시 대소문자가 구분됩니다. 부분문자열은 연속된 문자열이어야 합니다. ▣ 입력설명 첫 줄에 첫 번째 S문자열이 입력되고, 두 번째 줄에 T문자열이 입력됩니다. S문자열의 길이는 10,000을 넘지 않으며, T문자열은 S문자열보다 길이가 작거나 같습니다. ▣ 출력설명 S단어에 T문자열과 아나그램이 되는 부분문자열의 개수를 출력합니다. ▣ 입력예제 1 &#39;bacaAacba&#39; &#39;ab &#39; ▣ 출력예제 1 3 출력설명: {bac}, {acb}, {cba} 3개의 부분문자열이 "abc"문자열과 아나그램입니다... 2023. 11. 27.