< 문제 >1단계 풀이 \- 나머지연산자를 활용해 나머지가 1인건 홀수, 1이 아닌건 짝수로 판단
< 문제 >풀이reduce함수를 사용해 배열의 합을 구하고 배열의 길이로 나누어 평균값을 구함
< 문제 > 풀이약수를 구할때 매개변수로 들어온 숫자가 12라면 1~12까지 숫자중 12로 나누었을때 나머지가 0인 즉 나누어떨어진 숫자를 구하고 그합을 구함
풀이js 내장 메소드를 이용해 풀이 \- 먼저 Math.sqrt를 이용해 제곱근을 구하고, 해당제곱근이 정수 제곱근이 맞는지 확인하기위해 Math.floor한 값과 비교해 같다면 정수제곱근, 다르다면 정수제곱근이 아닌걸로 판단. true면 Math.pow를 이용
< 문제 > 풀이다루기 쉽게 숫자에서 문자로 바꾼후, 문자의 각 index에 해당하는 값을 다시 숫자로 바꾸어 계산한다.
< 문제 > 풀이숫자를 먼저 문자로 바꾸고 문자를 반복문돌면서 answer에 push해 나간다. \- 반복을 거꾸로 돌면서 0이 될때까지 거꾸로 배열에 push함으로써 reverse함수를 이용하지않 고 한번에 반복으로 풀이.
< 문제 > 풀이문제에 "단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다." 라는 구문에 힌트를 얻어p or y가 항상 대문자일때를 비교해서 반복문을 돌면서 p와 y의 개수를 각각 찾고 그 개수를 비교해서 true, false 풀이
< 문제 >풀이먼저 기존의 매개변수 x를 복사한 copyX라는 변수를 만들고 그 변수를 이용해 숫자 각 자리의 합을 구해내고, 매개변수 x를 각자리의 합으로 나눴을때 나누어 떨어진다면 true, 그렇지않다면 flase 라는 결과가 나오도록 풀이
< 문제 >풀이숫자를 문자로 바꾼후, split을 이용해 배열로만들고 map으로 반복을 돌면서 문자를 숫자타입으로 변경해주고, sort를 이용해 내림차순정렬, 이후 다시 join을 이용해 하나의 문자열로 묶고 최종적으로 parseInt로 감싸서 그 하나의 문자열을
< 문제 > 풀이parseInt를 이용해 문자를 숫자로 변경, parseInt를 사용하면부호를 그대로 유지한상태로 변환해줌으로써 간단하게 풀이
< 문제 >풀이 입출력의 예를 통해 x를 n번 더해야한다는것을 확실하게 이해하고, n번 더하는것이니 n번 반복문을 반복하면서 매개변수인 x를 가장처음엔 x가 나오도록 x + 0 으로 계산되고, 기존에 x에 i라는 index를 추가해 x에 index n을 한값을
< 문제 >풀이n을 나눴을때 나머지가 1인 수를 찾는다. 이렇게 하면 따로 Math.min()과 같은 메소드를 쓰지않아도 1부터 시작해서 조건에 맞는 가장 작은숫자에서 return 되기때문에 성능적으로도 최소한의 반복으로 원하는 값을 찾아낼 수 있다.
< 문제 > 풀이
< 문제 >풀이 indexOf메소드를 사용해 Kim이라는 문자열이 몇번째 index에 포함되어있는지 풀이
< 문제 >풀이몇번 반복문이 일어날지 모르는상황이기때문에 이런경우 for문 보다는 while반복문이 더 어울리다는 판단, 최종결과는 1이 나오니 while반복이 1보다 클 경우에만 반복문을 진행, 짝수일경우 2를나누고, 홀수 일 경우 3을곱하고 1을 더함 최종 결
< 문제 >
< 문제 > 풀이filter메소드를 사용하여 주어진 배열에서 조건에 부합하는(나눴을때 나머지가 0인) 배열을 구하고, 해당배열의 sort문을 이용해 오름차순정렬 진행, 최종결과가 빈배열일 경우에는 문제에 맞게 -1로 return
< 문제 >풀이먼저 배열에서 가장 작은수를 구하기위해 Math.min을 이용해 최소값을 구하고, 해당 최소값을 filter메소드를 이용해 최소값이 아닌 숫자만 배열에 남기도록 하고, 최종적으로 배열의 갯수를 보고 최소값을 제외한배열 vs -1을 분기처리해서 풀이
< 문제 >풀이주어진 문자열의 갯수가 짝수일때, 홀수일때 분기처리후 홀수일경우에는 2를 나눴을때 소수점이 나오기때문에 Math.floor로 소수점을 버리고 index를가지고 가운데있는 글자를 가져오는 풀이
< 문제 >풀이문제에서 signs의 길이는 absolutes의 길이와 같습니다. 라고 주어졌고, 또한 순서도 차례대로 담겨있기때문에 둘중 하나의 배열의 갯수만큼 반복돌면서 signsi가 true일땐 더하고,flase 일땐 빼서 풀이
풀이0 ~ 9 까지의 숫자를 반복돌면서 매개변수로 받은 numbers배열에 존재하는지 체크하고 존재하지 않으면 값을 더해서 풀이
< 문제 >풀이a와 b의 길이, 순서가 같다고 가정되어있기때문에 둘중의 하나의 length만큼 반복을 돌면서각각의 index의 해당하는 값을 더해서 풀이
< 문제 > 풀이charCodeAt()메소드로 주어진 알파벳의 아스키코드를 구하고(숫자) -> sort를 이용해 숫자비교 내림차순으로 정렬을 해준다. split으로 문자를 배열로 바꿔 연산해주고, join으로 다시 문자열로 결과를 내준다.
< 문제 >풀이 isNaN을 이용해 문자/숫자 구분하는 방법으로 풀이를 풀었지만 최종테스트에서 실패했고 실패 이유는 지수표기법때문이었다. ex)'123e' -> isNaN으로는 e를 문자로 인식하지않고 숫자로 인식하는 문제가 발생그래서 생각한건 1.반복돌면서 모든
< 문제 >풀이먼저 범위를 left ~ right까지로 정하고 해당 범위 안에서 반복문을 돈다.그 내부에서 한번더 반복문을 돌면서 각각의 left~right범위에 드는 숫자의 약수의 개수를 count라는 변수에 구한다. (count는 매번 첫번째 반복이돌때 즉 l
< 문제 >풀이먼저 arr1과arr2의 행,렬의 크기가 같으니 arr1의 길이 가지고 반복을 돌리고,arr1의 i번째 index가 또 배열이 되기때문에 한번더 반복문을 돌려서 이중for문을 돈다.그때 첫번째 반복에 emptyArray라는 빈 배열을만들고 -> 이
< 문제 >풀이count만큼 반복하면서 answer에 각 반복수 만큼 곱한값을 더해준다,answer(이용료)가 money보다 크다면 가지고 있는 money보다 부족한것임으로 answer - money를 한값을 넣어주고 그렇지않고 금액이 부족하지않으면 0을 retu
< 문제 >풀이유클리드 호제법으로 풀이 (https://www.youtube.com/watch?v=Obs-HC5j5bI)영상보고 학습, 최대값을 구할때는 a에서 b를 나눈 나머지가 0일땐 b를 return 그렇지 않은경우는 재귀로 다시 함수를 호출하는데
< 문제 >풀이for문을 arr의 갯수만큼 돌면서 현재 비교할값과 그 이전의 값을 비교해서 이전의값과 현재값이 같지않을때만 answer에 pushg해준다.i가 0일때 arri - 1는 undefined가 나오므로 반복중 가장 첫번째값은 항상 push된다는점을 이용
< 문제 > 풀이문제가 전체 문자에대한 길이 기준이아닌 "단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다"이기때문에 split메서드를 이용해 공백을기준으로 배열로 만듬 그 이후 그 배열의 각각의 단어를 찾기위해 2중 for문을 돌면서 각 단어의 길이 기준으
< 문제 >풀이10진수 -> 3진수 -> 한번문자열을 뒤집고 -> 10진수으로 표현먼저 10진수에서 다른진수로 변환할때는 toString(변환할진수)을 사용하고다른진수에서 10진수로 변환할때는 parseInt(문자열, 10진수로 변환할 진수)를 이용한다.그래서 1
< 문제 >아스키코드 링크풀이아스키코드를 이용한풀이, 알파벳과, 공백으로만 이루어져있다는것을 제한조건에서 확인하고,ex) a ~ z범위를 넘어갈경우 다시 a부터 시작하는것을 고려해 알파벳을 아스키코드로 변환해 조건문 구현, 공백일 경우 명시적으로 공백을 push해
< 문제 >풀이먼저 주어진 예산으로 최대 몇개의 부서의 물품을 지원할지 라는것은 -> 가장 적은 숫자들을 더해서 그 합이 예산을 넘는지 넘지않는지 확인하는것으로 접근 (더 큰숫자를 먼저 더하는건 의미없다 판단)그래서 먼저 오름차순으로 숫자를 정렬해주고, 반복을 돌
< 문제 >풀이new Date에서 월쪽에 -1일을 해준이유는 Date의 월 표시0~11 > 1월~12월Date 의 요일 표시0~6 > 일요일 ~ 토요일이렇게 구성되어 있기 때문입니다.그래서 5월을 구하기위해 5 - 1을 해주고,위에 표시한대로 일 ~ 토요일 순서로
< 문제 >에라토스테네의 체 정리(https://velog.io/@loocia1910/javascript%EC%97%90%EC%84%9C-%EC%86%8C%EC%88%98Prime-number-%EA%B5%AC%ED%95%98%EA%B8%B0에라토스테네스
< 문제 >< 풀이 > 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.를 염두해둔다.배열의 n번째 를 서로 비교해준다.an > bn return 1an < bn) return -1을 해주면 sort정렬에서는
< 문제 > for문 풀이먼저 문제에서 반복되는 포인트를 찾는다. ex) 1번수포자는 1, 2, 3, 4, 5가 반복됨.이렇게 반복되는 규칙을 미리 정의해두고 해당 index에 해당하는 count를 정의해둔다.그 이후 index를 각 배열의 길이에 맞게 나누어 준
** > 해시 풀이 먼저 문제 카테고리가 해시로 되어있어서 - 해시맵 알고리즘으로 접근 빅오 표기법의 O(n)으로 검색할 수 있다. 먼저 pH 라는 participation Map을 만들고, participation의 길이만큼 반복하면서 pH Map에 값을 세팅해줍니
< 문제 >풀이hash Map 풀이new Set메소드를 사용했고, 문제에서 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다라고 했기때문에 총갯수를 2로 나눈 값을 length라는 변수에 담아두고 문제에서 이 length값이 최대값임을 알 수 있고, 배열의
해당 풀이는 일반적으로 반복문을 돌면서 풀면 시간초과가 발생한다.그래서 약수의 절반만큼계산 or 제곱근만큼만 계산해서 시간초과가 나지않는 방법으로 구현.i의 2를 나눈만큼 반복 풀이 = 약수는 본래 값을 제외하고 n/2보다 클 수 없다는것을 이용해 i % j === 0
과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다.한 상자에 사과를 m개씩 담아 포장합니다.상자에 담긴 사과 중 가장
햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상
오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다.정답은 아무에게도 말하지 마세요.콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가?단, 보유 중인 빈 병이 2개 미만이면, 콜라를
한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째
두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은
https://school.programmers.co.kr/learn/courses/30/lessons/42578