분류 전체보기195 [JavaScript] 크레인 인형 뽑기 게임 - 2019 카카오 개발자 겨울 인턴 문제게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다."죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이.. 🧬알고리즘/Programmers 2024. 8. 27. [JavaScript] 실패율 - 2019 카카오 블라인드 코딩 테스트 문제슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다.스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 .. 🧬알고리즘/Programmers 2024. 8. 26. [JavaScript] 모의고사 문제수포자는 수학을 포기한 사람의 준말이다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 한다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍는다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 반환하는 함수를 작성하라. 가장 높은 점수를 받은 사람이 여럿일.. 🧬알고리즘/Programmers 2024. 8. 23. [JavaScript] K번째 수 문제배열 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에서 나온 배열을 정렬하면 [2, 3, 5, 6]이다.2에서 나온 배열의 3번째 숫자는 5이다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용해 나온 결과를 배열에 담아 반환하도록 하는 함수를 작성하라. 예시arraycommandsreturn[1, 5, 2, 6, 3, 7, 4][[2, 5, 3], [4, .. 🧬알고리즘/Programmers 2024. 8. 23. [JavaScript] [1차] 다트 게임 - 2018 카카오 블라인드 코딩 테스트 문제카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다.갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다.다트 게임은 총 3번의 기회로 구성된다.각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다.점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다.옵션으로 스타상(*) , 아차상(#)이 존재하며 스타상(*) 당첨 시 해당 점수와 바로 전에 얻은 점수를 각.. 🧬알고리즘/Programmers 2024. 8. 22. [JavaScript] [1차] 비밀지도 - 2018 카카오 블라인드 코딩 테스트 문제네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다.전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 한다.지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다.지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다."지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다.암호화된 배열은 지도의 각 가로줄에서 벽 부분.. 🧬알고리즘/Programmers 2024. 8. 22. [Next] Next에서 라우팅 구현하기 React의 라우팅React의 경우 페이지 이동을 하려면 react-router-dom 라이브러리를 설치한 후 아래의 코드처럼 Routes에 등록해줬다.import { BrowserRouter } from "react-router-dom";import { Routes, Route } from "react-router";const App = () => { return ( } /> );};export default App; react-router의 작동 방식은 url을 지정하고 사용자가 해당 url에 접근할 때 컴포넌트의 render를 요청하는 것이다. 페이지를 생성할 때마다 url과 해당 url 접속 시 보여줄 페이지를 사용자가 직접 작성해줘야 했다. .. 🖥️Frontend/Next 2024. 8. 21. [JavaScript] x만큼의 간격이 있는 n개의 숫자 문제정수 x와 자연수 n이 매개변수로 주어진다. x부터 시작해 x씩 증가하는 숫자를 n개 지닌 배열을 반환하는 함수를 작성하라. 예시xnreturn25[2, 4, 6, 8, 10]43[4, 8, 12]-42[-4, -8] 나의 풀이function solution(x, n) { const result = []; for (let i = 1; i 다른 풀이function solution(x, n) { return Array(n).fill(x).map((v, i) => (i + 1) * v)} 풀이 방법먼저 문제에서 n번 반복해야 된다는 조건에 for문을 사용하기로 했다. 빈 배열을 하나 생성해주고 for문을 사용해서 i의 값을 1씩 증가시키면서 x * i 값을 빈 배열에 넣어주고 .. 🧬알고리즘/Programmers 2024. 8. 21. [JavaScript] 행렬의 덧셈 문제행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 된다. 2개의 행렬 arr1과 arr2가 매개변수로 주어질 때, 행렬 덧셈의 결과를 반환하는 함수를 작성하라. 예시arr1arr2return[[1, 2], [2, 3]][[3, 4], [5, 6]][[4, 6], [7, 9]][[1], [2]][[3], [4]][[4], [6]] 나의 풀이const solution = (arr1, arr2) => arr1.map((arr, i) => arr.map((v, j) => v + arr2[i][j])); 풀이 방법먼저 이차원 배열이 주어진 것을 보고 이중 for문을 사용해야겠다고 생각했다. 하지만 for문을 두 번 사용하면 코드가 길어져서 가독성이 떨어질 것 같.. 🧬알고리즘/Programmers 2024. 8. 21. [JavaScript] 핸드폰 번호 가리기 문제프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가린다. 전화번호가 문자열 phone_number로 주어질 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 반환하는 함수를 작성하라. 예시phone_numberreturn01033334444*******4444027778888*****8888 나의 풀이const solution = (phone_number) => '*'.repeat(phone_number.length - 4) + phone_number.substring(phone_number.length - 4); 다른 풀이function hide_numbers(s){ return s.replace(/\d(?=\d{4})/g, .. 🧬알고리즘/Programmers 2024. 8. 21. [Next] 프로젝트 수동 설치하기 React와 Next.js의 차이점React는 라이브러리이고 Next.js는 프레임워크이다. 라이브러리라이브러리는 코드 내에서 사용하려고 설치하는 것이지만 사용하는 주체는 사용자다. 라이브러리를 사용해서 우리가 코드 내에서 원하는 아키텍처를 사용해서 원하는 방식으로 코드를 작성할 수 있다. 파일을 어디에 저장할 지, 폴더 구조를 어떻게 할지 사용자가 모든 결정을 내린다. 예를 들어 그래프를 그리는 기능이 필요하면 우리는 라이브러리를 가져와서 해당 기능을 구현할 것이다. 이렇듯 라이브러리는 우리가 도움이 필요할 때만 가져와서 사용하는 것이다. React 또한 UI 인터페이스를 build하는데 사용하는 라이브러리이다. React가 반응형 사용자 인터페이스를 구축하는데 도움을 주지만 결국 이것에 대한 모든 결.. 🖥️Frontend/Next 2024. 8. 20. [JWT] java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 에러 상황로그인 API를 호출하여 성공 시 JWT를 발급하는 로직을 구현하던 중 다음과 같은 에러가 발생했다. 에러 코드java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 해결 방법Spring Boot 프레임워크 사용 시 해당 dependency를 추가로 설치해주면 에러가 해결된다.implementation 'javax.xml.bind:jaxb-api:2.3.0' 참고 사이트https://jminie.tistory.com/123 JDK 11에서 java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 에러🚨 에러 발생 로그인 API에서 JWT를 이용해서 회원 인증을 구.. 🛠️Backend/오류해결 2024. 8. 20. 이전 1 2 3 4 5 6 7 ··· 17 다음