저 많은 사람 중에 '나'

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

    문제링크 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 배운점 특정 문자를 기준으로 sort가 가능하다는 것을 배웠다. strings.sort((a,b)=>{ if(a[n]>b[n]) return 1 else if(a[n]{ if(a[n]>b[n]) return 1 else if(a[n]{ if(a[n]>b[n]){ return 1 } else if(b[n]>a[n]){ return -1 } else if(a[n]==b[n]){ if(a>b..

    [프로그래머스/JS] 문자열 다루기 기본

    문제링크 문제풀이 function solution(s) { let num = '1234567890' var answer = true; for (let i=0; i

    [프로그래머스/JS] 소수 찾기

    문제링크 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 배운점 && 문제 풀이 에라토스테네스의 체를 다시한번 상기시켰다. function solution(n) { var answer = 0; let arr = new Array(n + 1).fill(true); for (let i = 2; i

    [프로그래머스/JS] 문자열을 정수로 바꾸기

    문제링크 코딩테스트 연습 - 문자열을 정수로 바꾸기 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니 programmers.co.kr 배운점 이 문제에서 '-' 부호는 첫번째 문자열에 있기때문에 첫번째 문자열이 '-' 인지 아닌지로 if 문을 처리하여 풀려고 했다. 하지만 자바스크립트에서는 Number 나 문자열 앞에 + 를 붙여주면 형변환이 이루어진다는 것을 다시 상기시켰다. let a = "-1234"; let b = "-1234"; console.log(Number(a)); // -1234 console.log(+b); // -1234 문..

    [프로그래머스/JS] 시저 암호

    문제 링크 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 배운점 자바스크립트에서 아스키코드 값을 알아내기 위해서는 charCodeAt 메소드를 사용한다. s="AB" s.charCodeAt(i) 그렇다면 아스키코드 값을 문자열로 변경할때는 어떻게 할까? 다음과 같이 fromCharCode 메소드를 사용한다. String.fromCharCode(아스키코드 변수) 자바스크립트에서 문자열에 인덱스를 주어 접근할 수 있다는 것을 다시한번 상기시켰다. let str = "STRING" c..

    [프로그래머스/JS] 이상한 문자 만들기

    문제링크 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 배운점 소문자 -> 대문자 element.toUpperCase() 대문자 -> 소문자 element.toLowerCase() 문제풀이 function solution(s) { var answer = ''; let ans = s.split(" ") console.log(ans) ans.map((el)=>{ el.split("").map((element,idx)=>{ if(idx%2==0){ answer+=element.toUpperCase()..

    반복해서 코드를 쳐봐야 할 것들

    최대공약수 const getGcd = (a,b) => (b>0 ? getGcd(b,a%b) : a) 순열 function permutation(arr, selectNum) { let result = []; if (selectNum === 1) return arr.map((v) => [v]); arr.forEach((v, idx, arr) => { const fixer = v; const restArr = arr.filter((_, index) => index !== idx); const permuationArr = permutation(restArr, selectNum - 1); const combineFixer = permuationArr.map((v) => [fixer, ...v]); result.p..

    [프로그래머스/JS] 최대공약수와 최소공배수

    문제링크 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 배운점 재귀를 사용하여 최대공약수를 구할 수 있다. const getGcd = (a,b) => (b>0 ? getGcd(b,a%b) : a) 최대공배수는 두값을 곱한 후에 최대공약수로 나누어주면 된다. 문제풀이 function solution(n, m) { const getGcd = (a,b) => (b>0 ? getGcd(b,a%b) : a) let gcd = getGcd(n,m) let lcm = n * m /gcd ..

    [프로그래머스/JS] 하샤드 수

    문제링크 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 배운점 다음처럼 "number" 붙어있는 string을 하나씩 쪼개려면 split("")을 사용하여 쪼개어준다. let arr = String(x).split(""); 문제 풀이 function solution(x) { var answer = true; let sp = String(x).split("") let modi = 0 console.log(sp) sp.map((el)=>{ modi+= Number(el) }) retu..

    [프로그래머스/JS] k번째 수

    문제링크 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 배운점 블로그 자료를 보고 정리한 글입니다. 자바스크립트 sort 에 대해 배웠습니다. 숫자 정렬 오름차순은 다음과 같다. var numbers = [1, 10, 2, 20, 3, 30]; numbers.sort(function compare(a, b) { return a - b; }); 나는 화살표 함수로 짜는게 더 마음에 들었다. sort 할때 compare 함수가 필요하다는 사실을 인지하고 나는 화살표 함수를 사용하기로 했다. var numbers = [1, 10, 2, 20, 3, 30]; numbers.sort..