node -v 확인이 불가능 할 경우, NVM 설치가 필요합니다.https://github.com/nvm-sh/nvmex)명령어를 입력 시 설치되어 사용할 수 있는 Node.js 버전 확인이 가능합니다.설치된 특정 Node.js 버전 명령어를 입력해 Node.
S3 웹 호스팅을 진행하면서 다양한 포스팅 문서, 공식 문서를 찾아봤고, AWS 개편으로 참고에 어려움을 겪었습니다.물론 선배 개발자분들은 내용에 대해서 쉽게 이해하고 바로 적용하기 쉽겠지만, S3를 처음 접하는 초보 개발자분들에게는 혼란이 있을 수 있겠다는 생각이 들
CORS란? Cross-Origin Resource Sharing의 약자로 리소스를 요청하는 cross-origin HTTP 요청 방식이다. 비전공자 입장에서 밑에 그림 보면 무슨 말인지 잘 모르겠다. 그러니까, 말로 쉽게 풀어보자. Origin의 Resource에
개인적인 생각입니다.RDS가 존재하지만, EC2에 MySQL을 설치, 사용하는 경우는 RDS를 사용해야 할 만큼 규모가 큰 프로젝트가 아니거나, 단순히 연습을 위해서라고 생각됩니다.물론 RDS를 EC2에 연동하는 방법이 좋다고 생각합니다. 하루, 이틀 사용하고 서비스를
간단하게 ORM에 대해서 알아보고, Express, Node.js, TypeScript, Sequelize 세팅에 대해서 글을 작성해보겠습니다.Object Relational Mapping객체와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 것을 말합니다.객체를 통
간단하면서 간단하지 않은 Error입니다.입력 시 일반적으로 migration file이 삭제됩니다.하지만 ERROR: unable to find migration: 20220531-create-task.js 와 같은 에러가 발생한다면 20220531-create-ta
우선 좌측 상단 New 버튼을 클릭합니다.Environment 클릭합니다.활용된 Token 명을 VARIABLE에 적어줍니다.Workspace Tests 항목에 아래 명령어를 붙여넣어 줍니다.API 입력 후 로그인하여 토큰을 발행받습니다.아래 사진 Method가 GET
foreign Key(외래키) 때문에 Table 삭제가 안 될 때가 있다. Sequelize 사용 시에도 db:migrate:undo:all 입력 시 Error가 발생하는 경우가 있다.ex) foreign key constraint fails users의 foreign
Multer는 파일 업로드를 위해 사용되는 Node.js의 미들웨어입니다.multipart/form-data 형식으로 단일 및 다중 파일 업로드를 지원하기 때문에 가장 많이 사용됩니다.https://www.npmjs.com/package/multerhttps&
데이터베이스를 조작하기 위해 SQL 문을 작성해야 합니다. 하지만 SQL 문법을 코드와 함께 작성하면 가독성이 떨어집니다. 이런 문제를 해결하기 위해 ORM을 사용합니다.Object Relational Mapping은 객체(Object)와 관계(Relation)를 맵핑
Chrome V8엔진을 이용해 브라우저에서 JavaScript를 해석하듯이 서버에서 JavaScript를 동작할 수 있도록 하는 환경(플랫폼)입니다.서버 웹 응용프로그램을 만들 때 사용됩니다. Node.js는 비동기식 이벤트 기반 모델을 사용해 데이터 집약적인 애플리케
NodeJS의 이벤트 루프는 JavaScript의 싱글 스레드 약점을 개선하는 방식으로 사용됩니다. Task를 Offloading함으로써 약점을 개선합니다.var: 함수 스코프를 갖습니다. 변수를 한 번 더 선언해도 에러가 발생하지 않습니다.let: 블록 스코프를 갖습
Node.js는 클라이언트 브라우저 외부에서 웹 애플리케이션을 실행하기 위한 크로스 플랫폼입니다.JavaScript 런타임이며 서버를 만들 때 사용됩니다.JavaScript를 사용하기 때문에 프론트와 백엔드를 같이 개발하기 좋습니다.npm을 통한 다양한 모듈을 제공해
Node.js란? Chrome V8엔진을 사용한 클라이언트의 브라우저 외부에서 웹 애플리케이션 실행하기 위한 오픈 소스, 크로스 플랫폼입니다. JavaScript 런타임 환경 및 라이브러리로 웹 서버의 기능을 가지고 있습니다. 웹 서버란? 하드웨어, 소프트웨어 혹은
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 \*으로 가린 문자열을 리턴하는 함수, solution을 완성해주
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.n은 1이상, 50000000000000 이하인
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.n은 길이 10,000이하인 자연수입니다.빈 문자열을 하나 선언해
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.arr은 자연수를 담은 배열입니
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.numbers의 길이는 2 이상 100 이하입니다.nu
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.1 ≤ numbers의 길이 ≤ 90 ≤ nu
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.absolut
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.3 ≤ n ≤ 1,000,000입출력 예 10을 3으로 나눈 나머지가
길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.이때, a와 b의 내적은 a0b0 + a1b1 + ... + an-1\*bn-1 입니다. (n은 a, b의 길이)a, b의 길이
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.1 ≤ left ≤ right ≤ 1,
새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,F
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.예를 들어 array가 1, 5, 2, 6, 3, 7, 4, i = 2, j = 5, k = 3이라면array의 2번째부터 5번째까지 자르면 5, 2, 6, 3입니
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2
JadenCase 문자열 만들기 > JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s
피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.예를들어F(2) = F(0) + F(1) = 0 + 1 = 1F(3) = F(1) + F(2) = 1 + 1 = 2F(4) =
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.1478 → "one4seveneight"234567
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.1 + 2 + 3 + 4 + 5 = 154 + 5 +
길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다.배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록
효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는(1칸, 1칸, 1칸, 1칸)(1칸, 2칸, 1칸)(1칸, 1칸, 2칸)(2칸, 1칸, 1칸)(2칸, 2칸)의 5가지 방법으로 맨 끝 칸에 도
카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이
앱 대신 웹을 선택한 이유에 대해서 설명하시오. > Javascript를 지원하지 않는 브라우저에서 앱을 작동해야 하는 경우 웹 애플리케이션을 통해 문제를 해결할 수 있습니다. > 앱을 통해 개인화, 알림 전송이라는 기능적 제공이 가능하지만 사측 입장에서는 기능, 비
어떤 규칙에 의하여 항을 몇 개씩 묶어서 이루어지는 수열을 군수열이라고 한다.규칙성을 갖는다.각 군 안의 항의 개수를 조사한다.n 군의 첫째항을 구한다.ex) 첫째항부터 순서대로 1개, 2개, 3개, ... 묶어서 나타낸다. 묶음을 차례로 제1군, 제2군, 제3군 이라
12, 2, 4, 6, 8, 10 적혀 있는 시계가 있습니다. 12부터 N까지 이동 시 1의 에너지가 소모됩니다. 또 각 시와 시 사이를 오가기 위해서는 중간에 위치한 시를 반드시 거쳐서 이동해야 합니다. 다음은 N = 6인 경우의 예시입니다.12에서 4로 이동하기 위
조의 수 N과 발표 순서 K가 있을 때 K 순서가 몇 번째 경우의 수인지 구하기단순히 경우의 수를 구하는 문제가 아니라 K 순서가 몇 번째 수인지를 구해야한다.flag를 통해 배열을 false로 채워넣은 후, 지나오면서 true로 바꿔주고 false의 개수를 세는 방식
0번째 피보나치수는 0이고, 1번째 피보나치 수는 1입니다. 0, 1, 1, 2, 3, 5, 8, 13, 21, ... 증가한다.반복문 사용하는 방법이 있지만, 시간 복잡도를 고려했을 때 재귀함수를 사용하는 것이 좋습니다.그럼 문제를 풀어보자.n번째 요소가 있는 경우
부분집합인지 확인하는 문제 두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 반환하라. > for문을 통해 문제를 해결하려한다면 시간복잡도를 고려하지 않았기 때문에, 다른 방법으로 접근해야한다. 우선 sample이 bas
세로 길이2, 가로 길이 n인 2 x n 보드가 있습니다. 2 x 1크기의 타일을 가지고 이 보드를 채우는 모든 경우의 수를 리턴해야 합니다.타일을 가로, 세로 어느 방향으로 놓아도 상관없습니다. (입출력 예시 참고)우선 문제를 풀기에 앞서 규칙을 찾는게 중요하다고 생
커리어 변경을 한 특별한 이유가 있나요?IT팀과 교류가 많았고, 주말에 IT 컨퍼런스, IT Expo, 미래 박물관을 견학하며 HTML, CSS, Javascript에 관심을 갖게되었습니다. 스스로 웹 개발에 도전하면 개발에 흥미가 생겼고 누구나 도전해볼 수 있다고 생
REST 아키텍처의 제약 조건을 준수하는 프로그래밍 인터페이스를 뜻합니다.HTTP URI를 통해 Resource를 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미합니다.
let, const의 추가: 기존에는 var를 통해서 선언하고 할당했지만, ES6부터는 let, const를 지원합니다. let 재선언이 불가하고, 재할당이 가능합니다, const는 재선언, 재할당이 불가능합니다. 두 선언 키워드를 통해 좀 더 예측 가능한 코드를 작
문자열을 입력받아 연속되는 문자가 있을 경우, 연속 구간을 반복되는 수와 문자로 조합한 형태로 압축한 문자열을 리턴해야 합니다.빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다.3개 이상 연속되는 문자만 압축합니다.연속되는 숫자를 기록하기 위한 선언 count,
암호화된 문자열과 암호화 키를 입력받아 복호화된 문자열을 리턴해야 합니다.카이사르 암호(Caesar cipher)는 평문(plaintext)을 암호키 secret개만큼 (오른쪽으로) 평행이동시켜 암호화 합니다. 복호화는 암호화된 문자열을 원래의 평문으로 복원하는 것을
문자열을 입력받아 문자열에서 숫자를 모두 찾아 더한 뒤에 해당 값을 (숫자와 공백을 제외한 나머지) 문자열의 길이로 나눈 값을 정수로 반올림하여 리턴해야 합니다.빈 문자열을 입력받은 경우, 0을 리턴해야 합니다.숫자(digit)는 연속해서 등장하지 않습니다.digits
문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다.빈 문자열을 입력받은 경우, true를 리턴해야 합니다.대소문자는 구별하지 않습니다.우선 대소문자는 구별 할 필요없기 때문에
두 수(num1, num2)를 입력받아, num1를 num2로 나눈 나머지를 리턴해야 합니다.나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다.0은 어떤 수로 나누어도 나머지가 0입니다.어떤 수도 0으로 나눌 수 없습니다. 이 경우 'Error: cannot divi
수를 요소로 갖는 배열을 입력받아 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴해야 합니다.boolean 타입을 리턴해야 합니다.arri는 arr0부터 arri-1까지의 합보다 커야 합니다.단순 반복문을 활용해 쉽게 해결할 수 있는 문제입니다.arr0 부터
문자열을 요소로 갖는 배열을 입력받아 문자열을 세로로 읽었을 때의 문자열을 리턴해야 합니다.각 문자열의 길이는 다양합니다.각 문자의 위치를 행, 열로 나타낼 경우, 비어있는 (행, 열)은 무시합니다.다양한 문제 풀이법이 있겠지만, 위 코드를 통했을 때는 새로운 배열을
2차원 배열(배열을 요소로 갖는 배열)을 입력받아 'B'의 위치 정보를 요소로 갖는 배열을 리턴해야 합니다.arr, arri의 길이는 다양하게 주어집니다.항상 한 개의 문자열 'B'가 존재합니다.반복문 작성만 가능하다면 쉽게 해결할 수 있는 문제입니다. 주의 사항 ar
문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴해야 합니다.arri.length는 20 이하가장 짧은 문자열의 길이와 가장 긴 문자열의 길이가 같은 경우는 없습니다.가장 짧은 문자열 또는 가장 긴 문자열이 다수일 경우, 나
문자열을 입력받아 연속된 한자리 홀수 숫자 사이에 '-'를 추가한 문자열을 리턴해야 합니다.0은 짝수로 간주합니다.초기값을 str0으로 설정하고 반복문 내 if문을 stri - 1과 stri를 활용하면 첫값부터 홀수인지 확인할 수 있습니다.stri - 1 % 2 !==
문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다.'a'로 시작해서 'b'로 끝나는 길이 5의 문자열'b'로 시작해서 'a'로 끝나는 길이 5의 문자열대소문자를 구분하지 않습니다.공백도 한 글자로 취급합니다.'a'와 'b'는 중복해서 등장
문자열을 입력받아 문자열을 구성하는 각 단어의 첫 글자로 이루어진 문자열을 리턴해야 합니다.단어는 공백 한 칸으로 구분합니다.연속된 공백은 없다고 가정합니다.빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다.
말썽꾸러기 김코딩은 오늘도 장난을 치다가 조별 발표 순서가 담긴 통을 쏟고 말았습니다.선생님께서는 미리 모든 발표 순서의 경우의 수를 저장해 놓았지만 김코딩의 버릇을 고치기 위해 문제를 내겠다고 말씀하셨습니다.김코딩은 모든 조별 발표 순서에 대한 경우의 수를 차례대로
문제 > 아래와 같이 정의된 피보나치 수열 중 n번째 항의 수를 리턴해야 합니다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다. 0, 1, 1, 2, 3, 5, 8, 1
두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 리턴해야 합니다.base, sample 내에 중복되는 요소는 없다고 가정합니다.기존에 한 번 풀었던 문제다. 비교 공식이 있기 때문에 활용하면 좋은 문제다.
Stack > 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조입니다. LIFO(Last-In, First-Out) 또는 FILO(First-In, Last-Out) 사용 예시 풀이
가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out)
개발자가 되고 싶은 김코딩은 자료구조를 공부하고 있습니다. 인터넷 브라우저를 통해 스택에 대해 검색을 하면서 다양한 페이지에 접속하게 되었는데 "뒤로 가기", "앞으로 가기"를 반복하면서 여러 페이지를 참고하고 있었습니다.그런데 새로운 페이지를 접속하게 되면 "앞으로
마트에서 장을 보고 박스를 포장하려고 합니다. 박스를 포장하는 데는 폭이 너무 좁습니다. 그렇기에 한 줄로 서 있어야 하고, 들어온 순서대로 한 명씩 나가야 합니다.불행 중 다행은, 인원에 맞게 포장할 수 있는 기구들이 놓여 있어, 모두가 포장을 할 수 있다는 것입니다
Tree 구현을 위한 기본적인 코드가 작성되어 있습니다. Tree 자료구조의 특성을 이해하고 FILL_ME_IN 을 채워 테스트를 통과해주세요.value는 어떠한 값도 들어갈 수 있지만 현재 구현하는 Tree는 숫자로 제한합니다.트리는 데이터 검색 및 정렬시 적합하고
Graph 구현을 위한 기본적인 코드가 작성되어 있습니다. Graph 자료구조의 특성을 이해하고 FILL_ME_IN 을 채워 테스트를 통과해 주세요.addVertex(): 그래프에 버텍스를 추가해야 합니다.contains(vertex): 그래프에 해당 버텍스가 존재하는
가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데
Tree 구현을 위한 기본적인 코드가 작성되어 있습니다. Binary Search Tree 자료구조의 특성을 이해하고 FILL_ME_IN 을 채워 테스트를 통과해주세요.insert(value): 입력받은 value를 Binary Search에 맞게 Tree에 계층적으로
방향이 있는 간선과 방향이 없는 간선들의 목록들을 받아 2차원 배열의 인접행렬을 반환하는 함수를 작성하세요.각 간선은 3가지 정보를 담고 있습니다.0번째: 간선의 시작 정점 (0 이상의 정수)1번째: 간선의 도착 정점 (0 이상의 정수)2번째: 방향성 ('undirec
임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 깊이 우선 탐색(DFS, Depth First Search)을 합니다. 이 때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다.생성자 함수(Node)와 메소드(ad
정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값을 리턴해야 합니다.입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다.배열의 요소는 음수와 0을 포함하는 정수입니다.배열의 길이는 3 이상입니다.위와 같이 코드를 입력하면 풀 수 있다고 생
배열에서 특정값을 찾아내는 알고리즘입니다. 배열의 중간에 있는 임의의 값을 선택해 찾고자 하는 값 X와 비교한다. X가 중간 값보다 작다면 중간값을 기준으로 좌측 한칸 이동한다. X값이 중간값보다 크다면 우측으로 한칸 이동한다.아래와 같은 배열이 있다고 가정했을 때 이
정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.삽입 정렬을 구현해야 합니다.arr.sort 사용은 금지됩니다.입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다.slice와 concat을 자유롭게 활용할 수 있다면 쉽게 접근 가능한 문제입
부분적으로 오름차순 정렬\*된 정수의 배열(rotated)과 정수(target)를 입력받아 target의 인덱스를 리턴해야 합니다.부분적으로 정렬된 배열: 배열을 왼쪽 혹은 오른쪽으로 0칸 이상 순환 이동할 경우 완전히 정렬되는 배열예시: 4, 5, 6, 0, 1, 2
확장자명을 ts에서 tsx로 변경하면 쉽게 해결할 수 있다.
다음의 조건을 만족하면서 현재의 비밀번호('curPwd')를 새 비밀번호(newPwd)로 변경하는 데 필요한 최소 동작의 수를 리턴해야 합니다.한 번에 한 개의 숫자만 변경가능하다.4자리의 소수(prime)인 비밀번호로만 변경가능하다.정리하면, 비밀번호가 계속 소수를
정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.퀵 정렬을 구현해야 합니다.arr.sort 사용은 금지됩니다.입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다.기존에 풀었던 bubbleSort와 유사한 문제지만, 재귀를 활용해 풀이한 문제
문자열을 입력받아 문자열 내의 모든 괄호의 짝이 맞는지 여부를 리턴해야 합니다.다음 단계에 맞춰 함수를 작성해 보세요괄호의 종류를 단 한가지로 한정합니다.괄호의 종류를 늘려 모든 종류의 괄호에도 작동하도록 합니다.괄호를 제외한 문자열이 포함된 경우에도 작동하도록 합니다
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어"()()" 또는 "(())()" 는 올바른 괄호입니다.")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만 이루어진
길이가 m, n이고 오름차순으로 정렬되어 있는 자연수 배열들을 입력받아 전체 요소 중 k번째 요소를 리턴해야 합니다.두 배열의 길이의 합은 1,000,000 이하입니다.어떤 배열 arr의 k번째 요소는 arrk-1을 의미합니다.시간 복잡도를 생각했을 때, 살짝 아쉬움이
정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.병합 정렬을 구현해야 합니다.arr.sort 사용은 금지됩니다.입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다.기존 정렬보다 많이 어려웠다. 다양한 방법이 있겠지만 왜 병합 정렬을 사용하는
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 soluti
2차원 N x N 배열을 시계 방향으로 90도 회전시킨 배열을 리턴해야 합니다.회전 결과 행렬은 N M 을 3 2로 예를들면 1회 회전 시 row = M - col - 1 입니다.반대로 2회 회전 시 row = N - col - 1 됩니다.이후의 회전은 rotat
0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다.x의 모든 0을 제거합니다.x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다.예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111
let, const는 ES6에 추가된 문법으로 재선언은 가능하지만, let은 재할당 가능, const는 재할당 불가능이라는 특징을 가집니다. let, const를 통해 좀 더 예측 가능한 코드 작성이 가능합니다.변수의 정의가 선언(Declaration) / 초기화(In
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.n은 1 이상 100,000,000 이하인 자연수입니다.2단계의 이진 변환 반복하기와 연관된 문제입니다
자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다.조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는
네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다.지도는 한 변의 길이가 n인 정사
https://school.programmers.co.kr/learn/courses/30/lessons/12981?language=javascript끝말잇기에 참여하는 사람의 수 n은 2 이상 10 이하의 자연수입니다.words는 끝말잇기에 사용한 단어들이 순
https://school.programmers.co.kr/learn/courses/30/lessons/12973입출력 예 \* 위의 예시와 같습니다.입출력 예 \* 문자열이 남아있지만 짝지어 제거할 수 있는 문자열이 더 이상 존재하지 않기 때문에 0을
세로와 가로의 길이가 각각 M, N인 방의 지도가 2차원 배열로 주어졌을 때, 1은 장애물을 의미하고 0 이동이 가능한 통로를 의미합니다. 로봇은 지도 위를 일분에 한 칸씩 상하좌우로 이동할 수 있습니다. 로봇의 위치와 목표 지점이 함께 주어질 경우, 로봇이 목표 지점
정수를 요소로 갖는 배열을 입력받아 다음의 조건을 만족하는 LSCS\*를 리턴해야 합니다.LSCS: 주어진 배열의 연속된 부분 배열\*의 합을 구한다고 할 때, 이 중 가장 큰 값(Largest Sum of Contiguous Subarray)연속된 부분 배열들: 배열
https://school.programmers.co.kr/learn/courses/30/lessons/42885?language=javascript무인도에 갇힌 사람은 1명 이상 50,000명 이하입니다.각 사람의 몸무게는 40kg 이상 240kg 이하입니다
https://school.programmers.co.kr/learn/courses/30/lessons/12985?language=javascriptN : 21 이상 220 이하인 자연수 (2의 지수 승으로 주어지므로 부전승은 발생하지 않습니다.)A, B :
정수를 요소로 갖는 배열을 입력받아 이진 힙(binary heap)\*을 리턴해야 합니다.이진 힙(binary heap)은 노드의 값이 특정한 순서를 가지고 있는 완전 이진 트리(Complete Binary Tree)입니다.완전 이진 트리는 이진 트리의 (마지막 레벨
정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.힙 정렬을 구현해야 합니다.arr.sort 사용은 금지됩니다.입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다.최소 힙(min heap)을 구현해야 합니다.최소 힙 구현을 위해 선언된 함수들
https://school.programmers.co.kr/learn/courses/30/lessons/42842?language=javascript갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.노란색 격자의 수 yellow는 1 이상 2
https://school.programmers.co.kr/learn/courses/30/lessons/12980?language=javascript숫자 N: 1 이상 10억 이하의 자연수숫자 K: 1 이상의 자연수n을 5라고 가정했을 때, 반복문을 시작합니다
https://school.programmers.co.kr/learn/courses/30/lessons/17680정답임에도 불구하고, 테스트 케이스가 옳바르지 않은 경우가 있습니다..forEach 와 map의 차이에 대해서 알아야 합니다.map의 경우 원본 배
https://school.programmers.co.kr/learn/courses/30/lessons/12949문제 풀기에 앞서.. 행렬의 곱셈에 대해서 알아야 했습니다.(복잡한 사진..) 코드를 바탕으로 사진을 보면, 빨주노, 초파보, 찐파갈회 색이 세트입
문제 > https://school.programmers.co.kr/learn/courses/30/lessons/76502?language=javascript 코드
https://school.programmers.co.kr/learn/courses/30/lessons/12938if(n > s)의 경우 크기가 1인 1차원 배열을 뜻한다.middle을 통해 중간값을 구한 후 자연수 n의 개수만큼 배열을 만들어준다. 그리고 m
https://school.programmers.co.kr/learn/courses/30/lessons/87390?language=javascriptn은 3, left는 2, right는 5로 예를 들겠습니다. 123223333 입니다. (보기 쉽게 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/120802?language=javascript문제 요구사항에 따라 num1 + num2를 출력합니다.. ^^;
https://school.programmers.co.kr/learn/courses/30/lessons/120807문제 요구사항에 따라 num1 \* num2 후 출력하였습니다.
0단계가 생겼네요!?ㅇㅅㅇ)7
https://school.programmers.co.kr/learn/courses/30/lessons/120830Math.floor를 통해 정수만 구해 양꼬치 n개당 1개를 빼준다.return 보다는 if문 작성만 할 줄 알면 쉽게 해결 가능한 문제.
https://school.programmers.co.kr/learn/courses/30/lessons/120906처음에는 n을 계속 split 했다. 문자열이 아니라는 걸 늦게 깨달아, 1분 정도 더 걸렸다..문자열을 쪼개야한다!!문제를 잘 읽어보자.
https://school.programmers.co.kr/learn/courses/30/lessons/120841단순한 문제다. switch 문을 쓰면 코드가 깔끔해지니까, 변경은 알아서 하는 걸로..
https://school.programmers.co.kr/learn/courses/30/lessons/120818어려운 문제는 아니다. 하지만 10만원 이하의 경우의 수를 빼먹는 경우가 있을 수 있으니 주의해야 한다.업로드중..
https://school.programmers.co.kr/learn/courses/30/lessons/120846우선 합성수에 대해서 알아야 합니다.소수가 아닌 자연수. 1과 그 자신 이외의 수를 약수로 가지는 자연수. 합성수는 소수로 나눌 수 있다.다시 코
https://school.programmers.co.kr/learn/courses/30/lessons/120842slice를 통해 각 자리에 맞는 숫자를 넣어주고, 결과값을 반환합니다.기존 result에 들어 간 result(배열)을 ...을 통해 그대로 넣
https://school.programmers.co.kr/learn/courses/30/lessons/120834alpha를 만들어서 split과 맵을 활용했습니다. 이때 숫자를 split할 수 없었기 때문에 age(Number Type)을 String으로
https://school.programmers.co.kr/learn/courses/30/lessons/120890?language=javascript우선 입출력 예시만 봤을 때 배열(array)가 오름차순이다. 하지만 채점을 누르는 순간 모든 문제가 실패로
https://school.programmers.co.kr/learn/courses/30/lessons/120864?language=javascript우선 예외 사항 문자열에 자연수가 없는 경우 0을 return해야하는 부분을 조심해야 합니다.while문과 N
웹 사이트는 쿠키를 사용한 세션 인증, 모바일 앱, SPA은 헤더와 함께 토큰 인증을 사용한다는 관념이 있다. 두 방법 모두 취약점이 있고, 사용자 요구, 응용 프로그램에 더 적합한 방법을 선택하는 것이 좋다.장점과 단점1\. Session의 경우 Token과 비교했을
MVC Architecture의 한계로 등장했습니다. 단순한 구조일 때 MVC Architecture는 문제가 없지만 한 프로젝트가 거대해진 경우 복잡해집니다. 이때 문제 수정에 오랜 시간이 소요됩니다.위와 같은 이유로 Flux Architecture가 등장했습니다.가
https://school.programmers.co.kr/learn/courses/30/lessons/120894?language=javascriptnums에 제한사항 numbers (영어)를 넣어줍니다.이후 for문을 nums의 길이만큼 돌려, number
https://school.programmers.co.kr/learn/courses/30/lessons/120902?language=javascript우선 split을 통해 배열에 담아줍니다.결과값 반환을 위해서 result에다가 첫번 째 숫자값을 넣어줍니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120840?language=javascript우선 Factorial을 사용할까? 라는 고민을 했었고, 문제 아래 Hint가 있어서 확신이 들었다.문제에서
https://school.programmers.co.kr/learn/courses/30/lessons/120869?language=javascript우선 spell을 통해서 dic안에 있는 단어를 만들 수 있냐 없냐가 중요하고, 모든 단어를 사용해야 한다고
https://school.programmers.co.kr/learn/courses/30/lessons/120861?language=javascript우선 if, else를 통해 코드를 길게 작성해도 통과할 수 있는 문제다. 비효율적이라고 생각하지만, 가장 단
https://school.programmers.co.kr/learn/courses/30/lessons/120922?language=javascript결론만 얘기하면, 입출력 예를 잘 파악하면 됩니다. M \* N - 1 입니다.주절주절.. 얘기하자면, if문
https://school.programmers.co.kr/learn/courses/30/lessons/120884?language=javascript결과를 반환값 result를 선언하고, 치킨 쿠폰을 통해주문할 수 없는 수량까지 while문을 사용해 돌려줍니
https://school.programmers.co.kr/learn/courses/30/lessons/120860?language=javascript우선 dots0을 기준으로 sort합니다.sort된 값을 바탕으로 길이와 높이를 구해서 반환하면 됩니다.길이는
https://school.programmers.co.kr/learn/courses/30/lessons/120878toFixed()를 활용해 소수점 아래 10의 자리만큼 표기합니다. 소수점 아래 자리가 10이 넘어갈 경우 무한 소수 확률이 높기 때문에 통과가
https://school.programmers.co.kr/learn/courses/30/lessons/120871우선 반환값 result를 선언하고 설명을 읽어보면 1부터 시작이다. 따라서 i = 1로 시작한다.이제 규칙부분이고, 규칙을 찾을 때 큰 어려움을
https://www.acmicpc.net/problem/1193우선 문제를 풀기 위해 규칙을 파악하는 것이 중요하다. base(input)값이 4라고 가정했을 때 while문을 통해 count++ 발생시킨다. 이때 count는 0에서 시작한다.count++
https://school.programmers.co.kr/learn/courses/30/lessons/120863?language=javascript}
https://www.acmicpc.net/problem/2869ex) input = "2 1 5" result = 4달팽이는 낮에 distance 거리 2만큼 갈 수 있고, 밤에 decrease 1만큼 내려간다. goal 지점인 5까지 가기 위한 공식은 Ma
문제 > https://school.programmers.co.kr/learn/courses/30/lessons/120882 코드 풀이 > 써주자...
> https://www.acmicpc.net/problem/2292
https://school.programmers.co.kr/learn/courses/30/lessons/131705?language=javascript반복문을 돌려서 쉽게 풀었다. 주의 사항으로는 경우의 수를 생각해야 한다. 전부 number.length를 사
https://www.acmicpc.net/problem/2587우선 평균값을 구하기 위해서, total값을 구합니다.평균값은 쉽게 구할 수 있습니다. total을 구한 후 배열의 길이만큼 나눠주면 평균이 구해져요.문제의 요구사항에 맞춰 정렬 후, 중앙값을 구
function solution(A, B) { return (B+B).indexOf(A); }
문제 > https://school.programmers.co.kr/learn/courses/30/lessons/120880 코드 고수의 풀이.. 풀이 > sort((a, b) => b - a); 내림차순 sort((a, b) => a - b); 오름차순 js
https://school.programmers.co.kr/learn/courses/30/lessons/147355?language=javascript코드 풀이에 앞서, substring에 대해 설명드리겠습니다. 문자열을(시작값, 끝값)으로 자르는 기능입니다.
문제 > https://www.acmicpc.net/problem/2750 코드 풀이 > ㅇ
문제 > https://school.programmers.co.kr/learn/courses/30/lessons/120812 코드 풀이 >
문제 > https://www.acmicpc.net/problem/25305 코드 풀이 >
문제 > https://www.acmicpc.net/problem/2751
문제 > https://school.programmers.co.kr/learn/courses/30/lessons/132267 코드 풀이
문제 > https://school.programmers.co.kr/learn/courses/30/lessons/120907?language=javascript 코드 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=javascript 코드
https://www.acmicpc.net/problem/1427
https://www.acmicpc.net/problem/11650
https://www.acmicpc.net/problem/11651
문제 > https://school.programmers.co.kr/learn/courses/30/lessons/142086?language=javascript 코드
문제 > https://www.acmicpc.net/problem/1181 코드
Write a function to find the longest common prefix string amongst an array of strings.If there is no common prefix, return an empty string "".우선 단어를 비
https://school.programmers.co.kr/learn/courses/30/lessons/178871처음에는 splice를 활용해 값을 옮긴 후, 중복된 값을 제거했다. 그러면 뒤에 있는 중복값이 제거된 상태에서 원하는 결과를 얻을 수 잇었다.
문제 > https://school.programmers.co.kr/learn/courses/30/lessons/178870?language=javascript 오답 > 테스트 통과는 가능하지만, 시간 초과가 심각하다. 문제 >
https://school.programmers.co.kr/learn/courses/30/lessons/154540우선 첫줄, 마지막줄, 첫줄시작, 첫줄 마지막, 끝줄 시작, 끝줄 마지막을 주의해야한다.반복문을 통해서 mapsrow !== "X" 경우 dfs통
https://school.programmers.co.kr/learn/courses/30/lessons/176963우선 makeObject를 활용해 name, yearning을 obj에 넣어준다. 그러면 { may: 5, kein: 10, kain: 1, r
https://school.programmers.co.kr/learn/courses/30/lessons/181187?language=javascript