본문 바로가기

코테16

[JS] n개의 최소공배수 문제 설명두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.  문제 풀이const gcd = (a,b) => { if(b === 0){ return a; }else if(a%b === 0){ return b; }else{ return gcd(b, a%b); };}const lcm = (a,b) =.. 2024. 7. 3.
[JS] 점프와 순간 이동 문제OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 return하는 s.. 2024. 6. 29.
피보나치 수 런타임 에러 문제피보나치 수는 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) = F(2) + F(3) = 1 + 2 = 3F(5) = F(3) + F(4) = 2 + 3 = 5와 같이 이어집니다.2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 문제풀이function solution(n) { let newArr = [0, 1, 1] let fib = (n) => { if(newArr[n] !== un.. 2024. 6. 22.
프로그래머스 JavaScript - 문자열 내 마음대로 정렬하기 문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. strings n return ["sun","bed", "car"] 1 [".. 2024. 3. 8.
JavaScript - 알고리즘 특강(쉽게 진수변환, map & set) toString, parseInt 이용해 아주 쉽게 진수변환하기 toStirng() 특정 객체를 문자열로 반환해준다. 10진수를 다른 진수로 변환하기 위해서 사용할 수 있다. * 10진수 -> 16진수 var dec = 123; var hex = dec.toString(16); // === "7b" * 10진수 -> 2진수 var dec = 123; var bin = dec.toString(2); // === "1111011" parseInt() 문자열을 특정 진수의 정수로 변환한다. 다른 진수를 10진수로 변환시키기 위해서 사용할 수 있다. * 16진수 -> 10진수 var hex = "7b"; var dec = parseInt(hex, 16); // === "123" 알고리즘 문제 풀이시 유용한 ma.. 2024. 2. 28.
프로그래머스 JavaScript - 숫자 문자열과 영단어 문제 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 1 ≤ s의 길이 ≤ 50 s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다. retur.. 2024. 2. 22.
프로그래머스 JavaScript - 이상한 문자 만들기 문제 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. s return "try hello world" "TrY HeLlO WoRlD" 문제풀이 function solution(s) { var answer = ''; let arr = s.split(" ") for(i=0;i 2024. 2. 5.
프로그래머스 JavaScript - 최대공약수, 최소공배수 구하기 문제 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 두 수는 1이상 1000000이하의 자연수입니다. n m return 3 12 [3, 12] 2 5 [1, 10] 문제풀이 function solution(n, m) { var answer = []; let max = [] //n이 더 클때 if(n>m){ for(i=1;in){ for(i=1;im){ for(i=1;in){ for(i=1;i 2024. 1. 31.
자바스크립트 코테 핵심로직(2) 탐색 알고리즘 중 DFS를 공부해보자 탐색 알고리즘이란? 그래프의 모든 정점들을 특정한 순서에 따라 방문하는 알고리즘 그럼 그래프는 뭔데?! 그래프란, 자료구조 중 하나이다. 한 나라에는 도시들이 여러개 존재하고 이들은 도로들이 연결지어주고있다. 이때 이 도시들과 그에 연결된 도로를 합쳐서 자료구조로 만든것이 그래프이다. 정점은 도시들이 되고, 간선은 도로들이 된다. (근데 왜 1에서는 2, 3만 갈 수 있는걸까..?) 제대로된 정의는 다음과 같다. 정점과 간선으로 구성된 한정된 자료구조를 의미하며, 각각의 지점을 정점이라고 한다. 그리고 정점과 정점을 연결시켜 주는 것을 간선이라 부른다. 이런 그래프 자료구조를 탐색하는 것이 DFS(깊이우선탐색), BFS(너비우선탐색)이다. 왜 DFS, BFS를 알아야 하는가? 그냥 탐색하면 안되나? 왜 .. 2024. 1. 30.