728x90

Algorithm

    [JS] 프로그래머스 lv1. 문자열 내 마음대로 정렬하기

    문제 설명 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예strings n return ["sun", "bed", "car"] 1 ["car", "bed", "sun"] ["abce", "abcd", "cdx"] 2 ["abcd", "abce", "cdx"] 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 st..

    [JS] 프로그래머스 lv1. 삼총사

    문제 설명 한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요. 제한사항 3 ≤ number의 길이 ≤ 13 1,000 ≤ number의 각 원소 ≤ 1,000 서로 다른 학생의 정수 번호가 같을 수 있습니다. 입출력 예number result [-2, 3, 0, 2, -5] 2 [-3, -2, -1, 0, 1, 2, 3] 5 [-1, 1, -1, 1] 0 입출력 예 설명 문제 예시와 같습니다. 입출력 예 #2 학생들의 정수 번호 쌍 (-3, 0, 3), (-2, 0, 2), (-1, 0, 1), (-2, -1, 3), (-3, 1, 2) 이 삼총사가 될 수 있으므로, 5를..

    [JS] 프로그래머스 3진법 뒤집기

    [JS] 프로그래머스 3진법 뒤집기

    문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 입출력 예 n result 45 7 125 229 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 45 1200 0021 7 따라서 7을 return 해야 합니다. function solution(n) { let arr=[] while(n>0){ arr.push(n%3) n=parseInt(n/3) } return arr.reverse().map((v,i)=>v*(3**i)).reduce((a,b)=>a+b,0) } 나의 풀이 전략 10..

    [JS] 프로그래머스 - 진료순서 정하기

    [JS] 프로그래머스 - 진료순서 정하기

    function solution(emergency) { var answer = []; answer=[...emergency].sort((a,b)=>b-a) emergency.map(v=>answer.indexOf(v)+1) return emergency.map(v=>answer.indexOf(v)+1); } 원래 주어진 배열이 바뀌면 원래 주어진 배열대로 순서를 return 할 수 없으니 answer 에 원래 주어진 배열 emergency를 복사했다. 배열 메소드 map() 과 indexOf()를 이용하여 emergency 배열의 각 정수가 정렬한 배열에서 위치하고 있는 index를 찾아주었다. 결과는 첨자가 아닌 순서를 return 해주어야 하므로 +1 해주었다.

    [JS] 프로그래머스 - 외계행성의 나이

    [JS] 프로그래머스 - 외계행성의 나이

    정답코드 ) function solution(age) { var answer = ''; let str='abcdefghij'; answer=age.toString().split('').map(a=>str[a]).join(''); return answer; } 배열 메소드를 사용하면 짧게 끝나는 풀이지만 어떤 메소드를 어떤 순서로 사용해야할지 생각하게 하는 문제였다. 1. toString() 숫자타입을 문자타입으로 변환 let test = 12345; test = test.toString(); // 문자타입으로 변환함 console.log(test);//'12345' 2.split() 문자열을 배열로 변환 문자열.split();// 구분자를 넣지 않으면 문자열 한 덩이라가 배열의 아이템 1개로 들어간다. ..

    [JS] 프로그래머스 - 문자열 뒤집기 split(), reverse(), join()

    [JS] 프로그래머스 - 문자열 뒤집기 split(), reverse(), join()

    정답코드-> function solution(my_string) { var answer = ''; answer=my_string.split('').reverse().join(''); return answer; } 1. split() 함수 문자열을 일정한 구분자로 잘라서 배열로 저장하기 위해서 split() 함수를 사용 ex1) 파라미터를 입력하지 않을 경우 const str = "apple banana orange"; const arr = str.split(); document.writeln(arr); // apple banana orange document.writeln(arr.length); // 1 //파라미터로 아무것도 전달하지 않으면 문자열 전체를 length 1인 배열에 담아 리턴 ex2) 단..

    [JS] 자바스크립트 프로그래머스 - 최빈값 구하기

    [JS] 자바스크립트 프로그래머스 - 최빈값 구하기

    자바스크립트 배열 메소드를 능수능란하게 쓸 수 있는 실력이 아닌 상태에서 순수 조건문으로만 풀려고 하니 따져야 할게 많았다 1. array.sort((a,b)=>a-b)를 통해 오름차순 정렬 후 2. 배열 처음부터 돌면서 숫자가 바뀔때, 같은 수가 반복될때로 이렇게 두가지 경우로 나누어 생각 2-1. 숫자가 바뀔때 지금 있는 위치의 반복 수 1로 세팅 2-2. 같은 수가 반복되고 있을 때 지금 있는 위치의 반복 수 증가 3. 최빈값의 반복수보다 지금 있는 위치의 숫자 반복수가 더 크다면 최빈값과 최빈값의 반복수 업데이트 필요 4. 최빈값이 여러개인 경우를 알려주는 변수를 하나 추가해서 여러개 나오는 경우 체크해주기 answer//최빈값 repeatCnt//최빈값의 반복수 before//지금 있는 위치의 ..

728x90