일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 특성선택자
- 부트캠프 #개발일지 #TIL #FlexboxFroggy #displayflex #flexbox
- useEffect
- textContent
- 부트캠프 #CSS #개발일지 #TIL
- 의사클래스
- 결합선택자
- 부트캠프 #스파르타코딩클럽 #개발일지# #html
- 부트캠프 #CSS #개발일지 #TIL #박스모델
- 깃허브오류
- 템플릿스트링
- 부트캠프 #스파르타코딩클럽 #개발일지# #TIL #Javascript #confirm #location.href
- 알고리즘
- useState
- 개발일지 #TIL #프론트엔드 #HTML
- appendChild
- 부트캠프 #개발일지 #TIL #그리드 #CSS
- ㅜㄹㄹ
- js
- JS예제
- 부트캠프
- 개발일지
- React
- Til
- 리액트
- 부트캠프 #개발일지 #TIL #CSS속성 #float #clear
- CSS
- 부트캠프 #코딩 #개발일지 #프론트엔드 #CSS #TIL
- 부트캠프 #개발일지 #TIL #Position #위치
- querySelector
- Today
- Total
목록Algorithm (29)
나의 개발일지
✔️ 문제 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요. ✔️ 제한사항 1 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 1,000 0 ≤ n ≤ 1,000 ✔️ 입출력 예 설명 1 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 1,000 0 ≤ n ≤ 1,000 💡나의 풀이 function solution(array, n) { var answer = 0; for (let i = 0; i < array.length; i++) { if (array[i] === n) { // 배열의 현재 요소가 n과 같으면 answer++; // answer를 1 증가 } } retur..
✔️ 문제 군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다. 암호화된 문자열 cipher를 주고받습니다. 그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다. 문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요. ✔️ 제한사항 1 ≤ cipher의 길이 ≤ 1,000 1 ≤ code ≤ cipher의 길이 cipher는 소문자와 공백으로만 구성되어 있습니다. 공백도 하나의 문자로 취급합니다. ✔️ 입출력 예 설명 입출력 예 #1 "dfjardstddetckdaccccdegk" 의 4번째, 8번째, 12번째, 16번째, 20번째, 24번째 글자를 합친 "attack"을 retu..
✔️ 문제 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사람의 ..
✔️ 문제 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. ✔️ 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크..
✔️ 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. ✔️ 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. ✔️ 입출력 예 participant completion return ["leo"..
✔️ 문제 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 1. array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 2. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 3. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. ✔️ 제한사항 array의 길이는 1 이상 ..
✔️ 문제 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..
✔️ 문제 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. ✔️ 제한사항 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. ✔️ 입출력 예 arr1 arr2 return [[3,4],[5,6]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 💡나의 풀이 const solution = (arr1, arr2) => { let answer = [[]]; // 큰 배열 for문 for (let i = 0; i < arr1.length; i++) { answer[i] = [..
✔️ 문제 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. ✔️ 제한사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. ✔️ 입출력 예 s return "a234" false "1234" true 💡나의 풀이 function solution(s) { if(s.length !== 4 && s.length !== 6) return false; for(let i=0; i
✔️ 문제 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. ✔️ 제한사항놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수놀이기구의 이용 횟수 c..
✔️ 문제 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. ✔️ 제한사항 1 ≤ left ≤ right ≤ 1,000 ✔️ 입출력 예 absolutes signs result 13 17 43 24 27 52 ✔️ 입출력 예 설명 수 약수 약수의 개수 13 1, 13 2 14 1, 2, 7, 14 4 15 1, 3, 5, 15 4 16 1, 2, 4, 8, 16 5 17 1, 17 2 따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다. 💡나의 풀이 function solution(left,..
✔️ 문제 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. ✔️ 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. ✔️ 입출력 예 absolutes signs result [ 4, 7, 12 ] [ true, false, true ] 9 [ 1, ..
✔️ 문제 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. ✔️ 제한사항 str은 길이 1 이상인 문자열입니다. ✔️ 입출력 예 s return "Zbcdefg" "gfedcbZ" 💡나의 풀이 function solution(s) { return [...s].sort().reverse().join(""); } s라는 문자열을 배열로 만들어주고, sort로 오름차순, reverse로 역순(뒤집기), join으로 다시 문자열 만들기
✔️ 문제 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. ✔️ 제한사항 n은 길이 10,000이하인 자연수입니다. ✔️ 입출력 예 n return 3 "수박수" 4 "수박수박" 💡나의 풀이 function solution(n) { let answer = ""; for (let i = 1; i
✔️ 문제 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. ✔️ 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. ✔️ 입출력 예 s return "abcde" "c" "qwer" "we" 💡나의 풀이 function solution(s) { var answer = ""; //홀수인 경우 if (s.length % 2 === 1) { // s[인덱스] answer = s[(s.length - 1) / 2]; } else { answer = s[s.length / 2 - 1] + s[s.length / 2]; } return answer; } 감이 잘 안 잡혔는데 인덱스를 구하면 되는 거였다..
✔️ 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. ✔️ 제한사항 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. ✔️ 입출력 예 arr result [4,3,2,1] [4,3,2] [10] [-1] 💡나의 풀이 function solution(arr) { // 배열 길이가 1이면 [-1] 반환 if (arr.length === 1) { return [-1]; } // 최소값 구하기( 최소값..
✔️ 문제 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. ✔️ 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. ✔️ 입출력 예 numbers result [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6 💡나의 풀이 function solution(numbers) { var answer = 0; for (let i = 0; i cur + acc, 0); } 생각도 못한 풀이! 0 - 9 까지의 숫자를 다 더한 값은 45인데 담겨..
✔️ 문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요 ✔️ 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. ✔️ 입출력 예 arr divisor return [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] 1 [1, 2, 3, 36] [3,2,6] 10 [-1] 💡나의 풀이 function solution(arr, divisor) { var answe..
✔️ 문제 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. ✔️ 제한사항 seoul은 길이 1 이상, 1000 이하인 배열입니다. seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. "Kim"은 반드시 seoul 안에 포함되어 있습니다. ✔️ 입출력 예 seoul return ["Jane", "Kim"] "김서방은 1에 있다" 💡나의 풀이 function solution(seoul) { for (let i = 0; i < seoul.length; i++) { if (seoul[i] === "K..
✔️ 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. ✔️ 제한사항 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. ✔️ 입출력 예 예를 들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 💡나의 풀이 function solution(s) { var answer = Math.floor(s); return answer; }
✔️ 문제함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. ✔️ 제한사항n은 1이상 8000000000 이하인 자연수입니다. ✔️ 입출력 예 n return118372873211 💡나의 풀이function solution(n) { var answer = []; const str = String(n); const arr = str.split(""); answer = Number(arr.sort().reverse().join("")); return answer;} 💡다른 사람 풀이 중 알게된 것answer = arr.sort().reverse()..
✔️ 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. ✔️ 제한사항 n은 10,000,000,000이하인 자연수입니다. ✔️ 입출력 예 n return 12345 [5,4,3,2,1] 💡나의 풀이 fufunction solution(n) { const str = n.toString(); const newArr = str.split("").reverse().map(Number); return newArr; } 💡 문제 풀기에 실패했던 이유 : map(Number) --> 문자열로 바꾼 값을 다시 숫자로 바꿔주지 않았다 💡 새로 알게된 메서드 : reverse() 배열을 거꾸로 뒤집어 준다! 하지만 원본 배열이..
✔️ 문제 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요 ✔️ 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. ✔️ 입출력 예 arr return [1,2,3,4] 2.5 [5,5] 5 💡나의 풀이 function solution(numbers) { let sum = 0; for (let i = 0; i < numbers.length; i++) { sum += numbers[i]; } let answer = sum / numbers.length; return answer; } 💡다른 사람의 풀이 function solution(numbers) { return numbers.re..
✔️ 문제 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요. ✔️ 제한사항 예각 : 0 90) { return 3; } else if (angle === 180) { return 4; } } 💡다른 사람의 풀이 function solution(angle) { return angle < 90 ? 1 : angle === 90 ? 2 : angle < 180 ? 3 : 4; }
✔️ 문제 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요. ✔️ 제한사항 0 ≤ num1 ≤ 10,000 0 ≤ num2 ≤ 10,000 ✔️ 입출력 예 num1 num2 result 2 3 -1 11 11 1 7 99 -1 💡나의 풀이 function solution(num1, num2) { if (num1 == num2) { return 1; } else { return -1; } } 💡다른 사람의 풀이 function solution(num1, num2) { var answer = num1 === num2 ? 1 : -1; return answer; }
✔️ 문제 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요. ✔️ 제한사항 0
✔️ 문제 머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요. ✔️ 제한사항 0 1983 23 --> 2000 💡나의 풀이 function solution(age) { var answer = 0; return 2022 - age + 1; }
✔️문제 1. 두수의 차 정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 return하도록 soltuion 함수를 완성해주세요. ✔️ 제한사항 -50000 ≤ num1 ≤ 50000 -50000 ≤ num2 ≤ 50000 ✔️ 입출력 예 num1 num2 result 2 3 -1 100 2 98 💡문제 풀이 // function solution(num1, num2) { // var answer = 0; // return answer; // } const solution = (num1, num2) => ~~(num1 / num2); ✔️문제 2. 두수의 곱 정수 num1, num2가 매개변수 주어집니다. num1과 num2를 곱한 값을 return 하도록 solution 함수를 완성..
✔️문제 영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요. ✔️제한 사항 1 ≤ str의 길이 ≤ 20 str은 알파벳으로 이루어진 문자열입니다. ✔️ 입출력 예 입력 #1 aBcDeFg 출력 #1 AbCdEfG 💡풀이 const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; rl.on("line", function (line) { input = [line]; }).on("close", function () { str ..