반응형

코딩테스트 52

코딩테스트 팩토리얼

코딩테스트 팩토리얼 문제 설명 출력 예시 무작위 정수 n이 주어집니다. 그 n 팩토리얼중 가장 큰 숫자를 출력하세요! 예를 들어 n에 정수 7이 들어온다면 팩토리얼은 1*2*3 이므로 팩토리얼에서 가장 큰 숫자는 3 입니다. 바로 풀이 들어가보겠습니다~ let n = 3628800; var answer = 1; let sum = 1; while(true){ } //10 변수 n이 얼마가 들어올지 정확하게 모르니 while문을 쓰겠습니다. let n = 3628800; var answer = 1; let sum = 1; while(true){ sum *= answer if(sum * answer < n){//다음 팩토리얼 정수가 n보다 작을시 answer++ answer++ } else { break; }..

코딩테스트 2023.06.04

코딩테스트 배열 회전시키기

코딩테스트 배열 회전시키기 문제 설명 문제 출력 numbers 배열과 direction 문자열이 주어집니다. 여기서 direction에서 "right"면 numbers 문자열의 요소들의 자리를 오른쪽으로 한칸씩 밀고 "left"면 왼쪽으로 한칸씩 밀립니다. 이 문제는 배열 메서드 shift() 와 pop()을 이용하면 쉽게 풀 수 있을거 같습니다. 바로 갑시닷! const numbers = [4, 455, 6, 4, -1, 45, 6]; let direction = "left"; var answer = []; if(direction == "left"){ let shift = numbers.shift(); answer.push(...numbers,shift); } //[455, 6, 4, -1, 45, 6..

코딩테스트 2023.06.03

코딩테스트 공 던지기

코딩테스트 공 던지기 문제 설명 출력 예시 머쓱이가 친구들과 공을 던지며 노는 문제입니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있다고 하네요. 정수 k가 주어졌을 때 k번째 공을 던질 사람을 찾아내는 문제입니다! 즉 [1,2,3,4] k=3 이렇게 문제가 있으면 세번째 던질 요소는 1입니다. 1->3->1 이렇게 폴짝폴짝 뛰어 다니기 때문이죠~ 바로 풀이 들어가보겠습니다 const numbers = [1, 2, 3, 4, 5, 6]; let k = 5; var answer = 0; let len = numbers.length; //3 배열과 k가 주어졌습니다. 5번째 던질 차례인 사람을 찾는거기 때문에 폴짝뛰어보겠습니다~ 1->3->5->1->3 답은 3이 나와야..

코딩테스트 2023.06.02

코딩테스트 구슬을 나누는 경우의 수

코딩테스트 구슬을 나누는 경우의 수 문제 설명 출력 예시 n개중에 m개의 공을 뽑는 경우의 수를 구하는 문제입니다. 예를 들어 3개중 2개의 공을 뽑는다고 하면 경우의 수는 3개가 되겠죠. 또 5개중에 3개를 고른다고 치면 경우의 수는 10이 됩니다. 힌트에 공식도 줬으니 다 푼거나 마찬가지 입니다. 팩토리얼을 위한 코드를 짜면 되겠군요! let balls = 5; let share = 3; function fac(gob){ for(let i=gob; i>0; i--){ num *= i; } return num; } 우선 팩토리얼을 위한 함수를 만들었습니다. 정수가 담긴 변수를 가져와 1이 될 때까지 1씩 낮춰 곱해주는 함수 입니다. let balls = 5; let share = 3; let answe..

코딩테스트 2023.05.31

코딩테스트 모스부호 ( 1 )

코딩테스트 모스부호 ( 1 ) 문제 설명 출력 예시 모스 부호를 읽어 영어로 해독해야 하는 문제 입니다. 모스 부호 객체가 있으니 이걸 이용하여 문제를 풀어보겠습니다! const letter = ".... . .-.. .-.. ---"; const morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x', '-...

코딩테스트 2023.05.30

코딩테스트 점의 위치 구하기

코딩테스트 점의 위치 구하기 문제 설명 출력 예시 x와 y 좌표값이 적힌 배열이 주어지는데 그 좌표가 몇사분면인지 출력해주는 문제 입니다. 닷의 위치가 0이 안나온다고 하니 편하게 조건문을 사용하여 코딩하면 될 거 같습니다. 바로 풀어보겠습니다. const dot = [2, 4] var answer = 0; if(dot[0]>0 && dot[1]>0){ answer = 1; } else if(dot[0]0){ answer = 2; } else if(dot[0]

코딩테스트 2023.05.29

코딩테스트 개미 군단

코딩테스트 개미 군단 문제 설명 출력 예시 장군개미는 데미지가 5 병정개미는 데미지가 3 일개미는 데미지가 1 입니다. 개미들끼리 레이드 하러 가는데 보스몹을 딱뎀으로 잡아야 합니다! 보스몹의 hp수치에 맞게 개미들의 숫자를 최소병력으로 딱 맞게 출력해야 합니다. 예를 들어 hp가 23인 보스몹을 잡으려면 장군개미 4마리(20), 병정개미 1마리(3) 마리의 개미들이 필요합니다. 그러므로 개미의 수는 5 가 답이 됩니다 let hp = 999; var answer = 0; if(hp%5 == 0){ answer += Math.floor(hp/5); } 보스몹의 hp가 랜덤으로 주어지니 999인 셈 치고 코딩해보겠습니다. 보스피가 5로 나눴을 때 나머지가 0으로 딱 떨어지면 데미지가 5인 장군개미로만 레이..

코딩테스트 2023.05.28

코딩테스트 진료순서 정하기

코딩테스트 진료순서 정하기 문제 설명 출력 예시 emergency 배열에 큰 숫자부터 순위를 1부터 주는 문제 입니다. [5, 25, 15, 30] 란 배열이 있으면 정답 출력은 [4, 2, 3, 1] 로 해야 합니다. 바로 문제 풀이 들어가시죠. const emergency = [3, 76, 24]; let emergencySort = emergency.sort((a,b) => {b - a}); 제가 생각한 방법은 emergency 배열 요소의 큰값부터 1순위를 주기위해, emergency 배열을 내림차순으로 새로운 변수를 만들어 큰값요소부터 indexOf 메서드를 이용하여 그 인덱스 자리에 1부터 시작하는 등수를 매겨 주는겁니다! 하지만 이번문제에서 sort에게 문제가 있었습니다.. 이 sort는 (..

코딩테스트 2023.05.27

코딩테스트 외계행성의 나이

코딩테스트 외계행성의 나이 문제 설명 출력 예시 머쓱이는 외계행성에 불시착하여 입국심사 도중에 문제가 생깁니다. 그 행성에선 나이를 알파벳으로 말하고 있었습니다! a는 0, b는 1, c는2 ... f는9 로 말이져. 즉 19살은 "bf"로, 21살은 "cb" 로 출력해야 하는 문제입니다. let age = 23; age = age.toString();//숫자열을 문자열로 변환 let num = age.split('');//변환한 문자열을 한자리씩 쪼개기 [2,3] const eng = ['a','b','c','d','e','f','g','h','i','j'];//숫자와 매칭할 알파벳 배열 준비 우선 준비물은 이렇게 있으면 될 것 같습니다. 변수 age 를 한자리씩 비교를 하기 위해 쪼개기 위한 준비입니..

코딩테스트 2023.05.26

코딩테스트 짝수 홀수 개수

코딩테스트 짝수 홀수 개수 문제 설명 출력 예시 배열안에 짝수와 홀수의 개수를 세는 문제입니다. 짝수는 result 변수 0번 인덱스에, 홀수는 result 변수 1번 인덱스에 갯수를 세어서 출력해주면 됩니다. const num_list = [1, 2, 3, 4, 5]; var answer = [0,0]; num_list.forEach(e=>{//num_list 배열안에 요소만큼 반복 if(e%2 == 0){//짝수일시 answer 0번 인덱스 증가 answer[0]++ }else {//홀수일시 answer 1번 인덱스 증가 answer[1]++ } }) // [2, 3] if문 하나로 깔끔하게 풀었습니다. 여기서 더 깔끔한 코드로 정리하자면 삼항을 이용하면 됩니다. const num_list = [1,..

코딩테스트 2023.05.25

코딩테스트 별로 직각삼각형 출력하기

코딩테스트 별로 직각삼각형 출력하기 문제 설명 출력 예시 코딩테스트의 꽃 별찍기 문제입니다. for문을 이용하여 console.log 로 출력하면 됩니다! const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let input = []; rl.on('line', function (line) { input = line.split(' '); }).on('close', function () { console.log(Number(input[0])); }); 요즘 새로나온 출력문? 인거 같습니다. on('close', fuction 어쩌고 하는 ..

코딩테스트 2023.05.24

코딩테스트 최댓값 만들기

코딩테스트 최댓값 만들기 문제 설명 출력 예시 배열에 여러 숫자들이 변수로 주어지는데 이 요소들중 두 요소를 이용하여 큰 값이 나오게끔 곱하는 문제입니다. const numbers = [0, 31, 24, 10, 1, 9]; const numbers1 = numbers.sort((a,b)=>{ return b-a; }); 먼저 배열을 내림 차순으로 만들어 큰수가 0번째 인덱스부터 오게끔 만들었습니다. 이렇게 되면 일일이 비교하지 않아도 큰 숫자부터 0번째 인덱스, 1번째 인덱스에 순서하기 때문에 조건문과 반복문으로 비교 할 필요가 없어졌습니다. const numbers = [0, 31, 24, 10, 1, 9]; var answer = 0; const numbers1 = numbers.sort((a,b)..

코딩테스트 2023.05.23

코딩테스트 옷가게 할인받기, 아이스 아메리카노

코딩테스트 옷가게 할인받기, 아이스 아메리카노 문제 설명 출력 예시 지출 금액에 따라 할인을 받는 문제입니다. 10만원 이상은 5%할인 30만원 이상은 10%할인 50만원 이상은 20%할인을 해주는 혜자 가게입니다. 그대로 조건문을 이용해 출력하면 될 거 같습니다. let price = 150000; if(price >=500000){ answer = price * 0.8 } else if(price >=300000){ answer = price * 0.9 } else if(price >=100000){ answer = price * 0.95 } else { answer = price; } Math.floor(answer); //142500 곱하기 0.8은 20%, 곱하기 0.9는 10%, 곱하기 0.9..

코딩테스트 2023.05.22

코딩테스트 7의 개수, 특수문자 출력하기

코딩테스트 7의 개수, 특수문자 출력하기 문제 설명 출력 예시 배열에 머쓱이가 좋아하는 7의 개수를 찾는 문제입니다. 대충 한글짜식 쪼개어 7을 찾는 조건을 걸면 될거같습니다. const array = [7, 77, 17]; var answer = 0; const num = array.toString();//array배열을 문자열로 변환 const arr = num.split('');//변환한 문자열을 한글자씩 쪼개어 배열에 저장 arr.forEach(el=>{//배열이니 forEach사용가능 if(el == 7){//하나씩 쪼갠 요소를 7인지 조건을 걸어 검사 answer++//answer 증가식 } }) 결과: 4 문제 설명 문제 출력 그냥 특수문자들을 출력하는 문제입니다. 다만, 그냥 출력이 되면 ..

코딩테스트 2023.05.21

코딩테스트 대소문자 바꿔서 출력하기

코딩테스트 대소문자 바꿔서 출력하기 문제 설명 출력 예시 str 문자열에 소문자와 대문자가 섞여있습니다. 이 문자열의 소문자와 대문자를 바꿔서 출력해주세요~ const input = ["AbCdEfG"]; let str = input[0];//글자를 쪼개기 위한 변수 let answer = ''; [...str].forEach(e => {//펼침연산자를 이용하여 forEach 메서드 사용 }); input 에 있는 요소를 str에 저장하여 펼침연산자로 펼쳐줍니다. 이렇게 되면 str엔 "AbCdEfG" 문자열이 들어가고 펼침연산자를 이용하면 ["A","b","C","d","E","f","G"] 로 쪼개어 집니다. 이걸 forEach문을 이용하여 대소문자를 구별해주어 대문자는 소문자로, 소문자는 대문자로 ..

코딩테스트 2023.05.19

코딩테스트 코드 처리하기

코딩테스트 코드 처리하기 문제 문제를 정리해보자면, code 문자열에 1을 만나면 mode 변수에 1과 0이 토글되어야 하는 형식입니다. mode 변수의 값이 0일땐 code문자열의 짝수 번째 문자만 answer 문자열에 추가 해줍니다. mode 변수의 값이 1일땐 code 문자열의 홀수 번째 문자만 answer 문자열에 추가 해줍니다. 입출력 예시 문제의 정보를 알았으니 한번 코드를 짜보겠습니다! let code = "abc1abc1abc"; let answer = ''; let mode = 0; const arr = code.split("");//code문자열을 한글자씩 쪼개기 //["a","b","c","1","a","b","c","1","a","b","c"] arr.forEach((e,i) => ..

코딩테스트 2023.05.14

코딩테스트 접미사인지 확인하기, 접미사 배열 만들기, sort() 메서드

코딩테스트 접미사인지 확인하기, 접미사 배열 만들기, sort() 메서드 접미사인지 확인하기 이 문제는 my_string 이란 문자열이 주어지면, 문자열의 접두사에서 is_suffix 문자열이 있으면 result 에 1을, 없으면 0을 리턴하는 문제입니다. 반복문을 사용하여 slice 메서드를 이용하면 쉽게 풀 수 있을거 같습니다! let my_string = "banana"; let is_suffix = "ana"; let answer = 0; for(i=0; i a - b); console.log(numbers); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] // 숫자를 내림차순으로 정렬합니다. numbers.sort((a, b) => b - a); console.log(numb..

코딩테스트 2023.05.11

코딩테스트 배열 만들기2 ! (정수 5와 0으로만 이루어진 배열)

코딩테스트 배열 만들기2 ! 정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다. 문제 설명 입출력 예 정수 l과 r이 주어졌을때 숫자 0과 5로만 이루어진 오름차순 배열을 만드는 문제입니다. 배열의 요소 수가 하나도 없을땐 [ -1 ] 을 리턴합니다. 우선 반복문을 짜줍니다. let l = 5; let r = 555; for(i=l; i

코딩테스트 2023.05.06

코딩테스트 연습 - 등차수열의 특정한 항만 더하기

코딩테스트 연습 - 등차수열의 특정한 항만 더하기 문제 예시 정수 a 와 b가 주어집니다. a는 첫째항, d는 공차 입니다. 그리고 included란 배열이 주어지는데 배열안엔 "true" 와 "false" 가 무작위로 섞여있습니다. 이 배열의 요소가 "true"일때 해당하는 인덱스값의 항을 구하면 됩니다. 쉬운 문제 인거 같습니다! included = [true, false, false, true, true]; let a = 3; let d = 4; //3 7 11 15 19문제가 이렇게 주어졌다면 우리는 첫째항이 3인, 공차가 4인 항을 배열의 수만큼인 5개만큼 나열해야 합니다. 그렇다면 항은 3 7 11 15 19 이렇게 나오므로 "ture" 자리인 3, 15 , 19 를 더하여 답은 37이 됩니다..

코딩테스트 2023.05.02

코딩테스트 : 문자열 잘라서 배열로 저장하기 (push(), substr(), slice())

문자열 잘라서 배열로 저장하기 문자열이 주어 졌을 때, 주어진 n 길이씩 잘라서 배열에 저장하기 https://school.programmers.co.kr/learn/courses/30/lessons/120913 제안 사항 예시 이 문제는 문자열과 정수가 주어지는데, 문자열을 길이 정수만큼 잘라서 배열에 저장해야 합니다. 예를 들어 "javascript" 란 문자열과 3 이란 정수가 주어졌을땐, 입출력(결과)은 ["jav", "asc", "rip", "t"] 가 return 되어야 합니다. 한번 코드를 짜보겠습니다! 일단 n만큼 문자열을 계속 잘라서 빈 배열에 보내줘야 하니 반복문과 배열 push 메서드가 쓰여야 할거 같습니다! function solution(my_str, n) { var answer ..

코딩테스트 2023.04.01

우리가 헷갈린 논리연산자 증감식과 등차수열, 등비수열 문제 풀어보기!

논리 연산자 문제, 등차수열 등비수열 문제 금요일 테스트 봤던 논리연산자 문제 하나와 등차,등비수열에 관한 문제 입니다. 우선 문제를 보기 전 논리연산자의 개념부터 알아보겠습니다. 논리연산자란? 논리 연산자는 불리언 값 (true 또는 false) 간의 연산을 수행하는 연산자입니다. 자바스크립트에서는 세 종류의 논리 연산자를 제공합니다. 1. && (and) 양쪽 피연산자가 모두 true 일 때 true를 반환합니다. 만약 어느 한 쪽이 false이면 false를 반환합니다. 예시: true && true는 true를 반환하고, true && false는 false를 반환합니다. 2. || (or) 양쪽 피연산자 중 하나라도 true이면 true를 반환합니다. 양쪽 피연산자가 모두 false일 때 fal..

코딩테스트 2023.03.26
반응형