JavaScript56 [프로그래머스 Lv.1] 문자열 내 마음대로 정렬하기 javascript function solution(strings, n) { return strings.sort((a, b) => { // n번째 글자가 다르면 n번째 글자를 기준으로 정렬 if (a[n] !== b[n]) { return a[n].localeCompare(b[n]); } // n번째 글자가 같으면 전체 문자열을 기준으로 정렬 return a.localeCompare(b); });} 이번문제에서도 localeCompare() 라는 메서드를 새로 알게 되었다.referenceStr가 compareString 전 혹은 뒤에 오는지 또는 동등한지를 나타내는 정수를 반환합니다.compareString 전에 reference.. 2024. 11. 6. [프로그래머스 Lv.1] 가장 가까운 같은 숫자 javascript function solution(s) { var answer = []; let str = s.split(""); for (let i = 0; i 이번 문제를 풀면서 lastIndexOf()에 대해 공부했다. mdn 문서를 보면 해당 메서드는lastIndexOf(searchElement, fromIndex)Array 인스턴스의 lastIndexOf() 메서드는 배열에서 특정 요소를 찾을 수 있는 마지막 인덱스를 반환하거나, 해당 요소가 없으면 -1을 반환합니다. 배열은 fromIndex에서 시작하여 역방향으로 검색됩니다. 라고 되어있다. 두번째 인자의 사용이 좀 헷갈리는데 아래 제시한 예문을 보면const numbers = [2, 5, 9, 2];numbers.lastIndexOf.. 2024. 11. 5. [프로그래머스 Lv.1] 숫자 문자열과 영단어 function solution(s) { let arr = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] for(let i=0; i 2024. 11. 4. [프로그래머스 Lv.1] 시저 암호/두개 뽑아서 더하기 javascript 시저암호function solution(s, n) { let upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; let lower = "abcdefghijklmnopqrstuvwxyz"; let answer= ''; for(let i =0; i = strArr.length) index -= strArr.length; answer += strArr[index]; } return answer;}두개 뽑아서 더하기function solution(numbers) { let answer = []; //경우의 수 만큼 배열 안의 두개의 숫자를 더해 answer에 넣기 for(let i=0; i a-b);} 2024. 11. 1. [프로그래머스 Lv.1] 최소직사각형 function solution(sizes) { const width = []; const height = []; for(let i = 0; i 2024. 10. 31. [프로그래머스 Lv.1] 삼총사 function solution(number) { let count = 0; for(let i=0; i 2024. 10. 29. [프로그래머스 Lv.1] 3진법 뒤집기 풀이 function solution(n) { //n을 3진법으로 바꿔 let ternary = n.toString(3); //3진법이 된걸 뒤집어 reverse let reversTernary = ternary.split("").reverse(); let sum = reversTernary.join("") //reverse를 다시 10진법으로 바꿔 let answer = parseInt(sum, 3) return answer;} 코드 설명3진법 변환: n.toString(3)를 사용하여 10진수 n을 3진법 문자열로 변환합니다.문자열 뒤집기: split("") 메서드를 사용하여 문자열을 문자 배열로 변환한 후, reverse()로 배열을 뒤집습니다.배열을 문자열로 .. 2024. 10. 28. [프로그래머스 Lv.1] 예산 function solution(d, budget) { let answer = 0; // 가능한 횟수 let sum = 0; // 합산 예산 // d를 오름차순으로 바꿔 let arr = d.sort((a, b) => a - b); // d의 인덱스를 누적해서 더해 for (let i = 0; i budget) { break; } // budget보다 커지기 전까지는 지원 가능한 횟수를 증가시켜 answer++; } // 횟수 반환 return answer;} 2024. 10. 25. [프로그래머스 Lv.1] 크기가 작은 부분 문자열 function solution(t, p) { let answer = []; //t의 문자열을 하나하나 뿌셔 let arrT = t.split(""); //p 길이 구하게 p도 뿌셔 let arrP = p.split(""); //뿌신 t를 0번째 인덱스부터 p의 길이만큼 돌면서 뽑고 붙여 for(let i=0; i = arrP.length && newArr 최선이어따...... 2024. 10. 25. [TIL] 유효성 검사를 위한 정규 표현식 정리 //한글, 영문, 숫자 허용 (한글 자음이나 모음은 단독 사용 허용하지 않음)const regex = /^[a-zA-Z0-9가-힣\s]+(?![ㄱ-ㅎㅏ-ㅣ])$/;//이메일 형식const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;//숫자, 영문, 특수문자 허용const regex = /^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$%^&*]).{8,}$/; 2024. 10. 24. [프로그래머스 Lv.1] 최대공약수와 최소공배수 function solution(a, b) { // 최대공약수를 구하는 함수 (유클리드 호제법 사용) function gcd(a, b) { while (b !== 0) { let temp = b; b = a % b; a = temp; } return a; } // 최소공배수를 구하는 공식: a * b / gcd(a, b) let gcdValue = gcd(a, b); let lcmValue = (a * b) / gcdValue; // 배열로 최대공약수와 최소공배수를 반환 return [gcdValue, lcmValue];} 유클리드 호제법 단계두 수 중 큰 수를 작은 수로 나눈 나머지를 구합니다.작은 수와 나머지로 다시 나눔을 반복합니다.나.. 2024. 10. 24. [프로그래머스 Lv.1] 이상한 문자 만들기 function solution(s) { let answer = []; let arr = s.split(" "); for (let i = 0; i 왜이렇게 어려움 2024. 10. 22. 이전 1 2 3 4 5 다음