반응형 분류 전체보기155 [프로그래머스 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. [TIL] zustand로 로그인 상태 유지 및 로그아웃 구현 (+supabase, typescript) + 수정 supabase를 통하여 로그인과 회원가입 기능을 구현했다. 그런데 막상 구현하고 나니 또 뭘 해야할지 모르겠는거임..!로그인을 했으니까 마이페이지가 생기고 이동할 수 있어야 하고 그럴려면 로그인한 유저의 상태가 유지되고 데이터도 브라우저가 갖고 있어야겠고 그러기 위해서 유저데이터를 필요할 때마다 필요한 곳에 불러와야겠는거임.그래서 지금 하고 있는 사이드프로젝트의 규모가 크지 않으니 context api를 사용할까 했음.그런데 그렇게 되면 원하지 않은 곳에서 불필요한 리렌더링 일어날 것 같아 zustand를 사용하기로 함!zustand는 필요할 때에 원하는 데이터만 바로 불러와 쓸 수 있는 간편함이 좋았고,provider를 쓰지 않아 상태 변경 시 불필요한 리렌더링을 제어할 수 있기 때문임! 선행 작업으.. 2024. 10. 26. [프로그래머스 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. [프로그래머스 Lv.1] 직사각형 별찍기/같은 숫자는 싫어 풀이 직사각형 별찍기process.stdin.setEncoding('utf8');process.stdin.on('data', data => { const [n, m] = data.trim().split(' ').map(Number); // 입력된 값을 정수로 변환하여 n과 m에 할당 const row = '*'.repeat(n); // 가로 길이 n만큼의 별을 출력할 문자열 생성 for (let i = 0; i 같은 숫자는 싫어function solution(arr) { let answer = []; for (let i = 0; i 위에 풀이에 쓰이진 않지만 찾아보던 중 나중에 사용하기 좋은 메서드를 알게 됐다.function solution(arr) { r.. 2024. 10. 21. 이전 1 ··· 3 4 5 6 7 8 9 ··· 13 다음 반응형