1️⃣ 문제 설명배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.예를 들어 array가 1, 5, 2, 6, 3, 7, 4, i = 2, j = 5, k = 3이라면array의 2번째부터 5번째까지 자르면 5,
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.예를 들어, 주어진 정수가 6, 10, 2라면 6102, 6210, 1062, 1026, 2610, 2106를 만들 수 있고, 이중 가장 큰 수는 6210입니다.0 또는 양
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은
전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421전화번호부에 적힌
코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다.예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다.코니는 각 종류별로 최대
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.별(\*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.n과 m은 각각 1000 이하인 자연수입니다.입력5 3출력사실 이 문제 자체가 기본적인 반복문을 이용한 기호 출력
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.행렬 arr1, arr2의 행과 열의 길이는 500을 넘
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 1
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.문자열 전체의 짝/홀수 인덱스가 아니
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.x는 -10000000 이상, 10000000 이하인 정
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요arr은 길이 1 이상, 100 이하인 배열입니다.arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.의외로 쉬워서 다른 분들은 reduce 메서드를 사용했는데
피타고라스 공식에 의하면, 가장 큰 변(빗변)의 길이의 제곱은 나머지 두 변의 제곱의 합이라고 합니다. 그 말인 즉 빗변의 제곱에서 한 변의 제곱을 뺀 값이 나머지 한 변의 제곱의 값이라는 것이죠.ps. PCCE 문제들에 대한 답변 언어들은 파이썬, C++, 자바 이렇
한국 나이(korea)의 경우 태어난 순간이 1살이 되므로 다른 국가의 나이보다 1살 더 빠른 것이 특징입니다. 그래서 간단히 if-else문을 사용해 나이의 종류가 "korea"(한국 나이) 일 경우 2030년에서 출생 연도를 뺀 후 추가로 1(1살)을 더해주고, 나
문제의 설명을 보면, 처음 저축할 때(start)의 금액과 70만 원 이하일 때(before) 까지의 금액, 70만 원 이상, 100만 원 이하일 때 까지 이렇게 세 금액을 지정하여 넣어주면 되는 코드입니다.
1. 문제 설명 > 2. 제한 사항 > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 첫번째 문제 풀이(2023-12-11) > 이 문제는 한 경기가 치뤄질 때마다 전체 인원의 반이
이 문제는 오름차순과 내림차순을 이용한 그리디 알고리즘으로 처음 풀어봤는데, 간단히만 이야기 하자면 각 배열들을 각각 오름차순과 내림차순 시킨 후 반복문에서 해당 배열의 같은 위치의 값들을 곱하면 최소값을 구할 수 있는 알고리즘입니다.참고로 두 배열을 같은 차순으로 정
1. 문제 설명 > 2. 제한 사항 > 3. 입출력 예 > 4. 첫번째 문제 풀이(2023-12-12) > 일전에 풀었던 [연습 문제](https://velog.io/@re_go/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%E
이 문제는 얼핏 보면 간단한 문제이긴 한데, 생각보다 쉽지 않은 문제였습니다. 특히 이번 문제는 for문에 while문을 중첩 사용한 첫번째 사례가 아닌가 싶습니다.문제의 예시에서는 마을의 숫자가 3의 배수이거나 3이 들어가려 할 경우 바로 한 칸 건너띕니다. 그래서
배열의 모든 요소를 순회하며 값을 찾는 문제인데, 무식한 방법일 수 있겠지만 3중 for문을 사용하여 해당 문제를 풀었습니다.만약 3중첩 for문을 적게 될 경우 초기 인덱스 값은 i(배열의 첫번째 요소), i+1(배열의 두번째 요소), j+1 (배열의 세번째 요소)로
이번 문제는 for문을 이용해 주어진 rank(랭킹)와 attendance(참석 여부) 배열에 맞춰 참석 하는 사람들만 저장하는 배열 (attendedStudent)와 해당 참석자들의 등 번호(indexOf 메서드로 저장한 indexIs) 배열을 저장한 후 다음 이중
이 부분은 for문을 이용해 query의 인덱스의 홀짝 여부에 따라 arr 배열의 앞과 뒤를 자르는 코드입니다. 그러나 문제에서 나와있듯이 한 개의 요소를 자르는 것이 아니라 선택된 query의 값의 앞의 전부, 또는 뒤의 전부를 자르는 것이기에 이 점을 유의하며 조건
이 문제는 for문 1개와 중첩 for문 2개, 총 3개의 for문 구역을 활용하여 문제를 해결했는데요. 첫번째 for문은 rank 배열에 1을 채워넣는 역할을 하고, 두번째 for문은 score 배열의 학생(score 안의 배열 하나 하나)들을 선택하고, 그 학생의
이 문제는 // width와 height를 구한 후 그 값을 곱한 결과를 반환하면 되는데, X좌표만 모아놓은 배열(xValues)와 Y좌표만 모아놓은 배열(yValues)을 준비한 후 그 배열들 중의 x의 최대값(x 좌표의 끝점) 에서 최소값(x 좌표의 시작점) 을 빼
이 문제는 id를 담은 배열(idArray)와 password를 담은 배열(passwordArray)로 db의 각 요소들에서 빼내어준 후 includes 메서드를 사용해 해당 배열 내에 id_pw의 첫번째 요소(id)와 두번째 요소(pw)에 해당하는 아이디와 패스워드가
이 문제의 경우 RegExp 메서드를 활용 해볼까 했지만 해볼 엄두가 안나서 고민을 좀 해봤는데, 제한사항을 보니 연산자는 +와 - 단 둘이고, 피연산자도 둘로 항상 일정한 패턴을 보인다는 점에서 문제를 풀었습니다.즉 for문을 quiz의 길이만큼 돌리면서 quiz의
1. 문제 설명 > 2. 제한 사항 > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 첫번째 문제 풀이(2023-12-15) > 이번 문제는 [등차수열](https://calcpr
1. 문제 설명 > 2. 제한 사항 > > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 유의 사항 > ![](https://velog.velcdn.com/images/re_go/p
이번 문제는 제한 사항의 멕시멈이 1억이라 완탐으로 풀기는 좀 어려울 것 같았지만, 알고리즘 공부를 시작한지 얼마 안되어서 할 수 있는게 for문을 이용한 완탐 뿐이라... 다음과 같이 문제를 풀었습니다. 우선 입력된 storey를 숫자열 배열로 변환을 해준 후 1부터
이 문제는 현재 제 역량으로는 안될 것 같아서 그냥 블로그 글을 참고하게 되었는데요. 결론만 말하자면 배열들의 각각의 0번 (x값 좌표)을 기준으로 오름차순 하고, for문을 돌려서 현재의 endpoint(y 좌표)가 x좌표보다 작을 경우, 즉 현재의 요격 선상에 다음
이 문제의 경우 for문을 돌려 arr의 앞의 값과 뒤의 값이 다를 때 앞의 값을 앞의 값을 result 배열에 할당하는 식으로 문제를 해결하려 했습니다. 그런데 제가 생각한 대로 예시 테스트 케이스는 통과를 했는데 실제로 코드를 제출할때는 통과를 하지 못하더군요...
이번 문제는 for문으로 쉽게 해결을 했습니다. 그래서 다른 메서드들을 활용해 문제를 풀어보자는 생각으로 Array.from 과 map, join 메서드를 사용해 봤습니다.
이번 문제는 includes 메서드를 사용해 삼항 연산자의 조건으로 걸어 해당 문자열을찾은 후 그에 맞는 가격을 누적시키는 방법으로 문제를 풀었습니다.
이번 문제는 우선적으로 항을 구한 후 included의 i번째 값이 true일때 해당 항을 result에 누적 증가시키는 방법으로 풀었습니다.이 문제를 풀면서 저번에 등차수열, 등비수열을 구했던 공식이 생각나 응용을 해보았는데, 등차수열을 구할 경우 차이(gap)에 i
이번 문제도 등차수열의 특서을 이용해 문제를 풀었는데요. i를 1로 시작한 후 배열의 길이까지 for문으로 반복을 하면서 totalPrice에 price \* i 를 누적하는 방법으로 문제를 풀었습니다. 그 후 totalprice(지불해야할 금액)이 현재 가지고 있는
1. 문제 설명 > 2. 제한사항 > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 첫번째 문제 풀이(2023-12-20) > /* function solution(arr) {
이 문제는 좌표를 이용한 기본적인 문제로, 저 같은 경우 머릿속에 좌표를 그려 놓고 해당 문제를 풀었던 것 같습니다. 이때 board의 가로값과 세로값을 각각 rows와 cols 변수에 저장해 주고, if문으로 현재의 좌표의 x, 혹은 y 좌표가 각각의 방향에 대한 바
팩토리얼은 쉽게 말해서 n이 주어지면 1부터 n까지의 연속된 모든 양의 정수들을 곱한 값을 만들어내는 공식이라고 보면 되는데요. 자바스크립트에서 팩토리얼을 구현하는 방법은 다음과 같이 재귀 함수로 표현이 가능합니다.어쨌든 저는 이 문제를 while문을 사용해 반복을 하
저는 이 문제를 해석하는데 좀 애를 먹었는데, 처음에 이해했던 내용은 before을 뒤로 정렬해서 after와 같은지를 물어보는 문제인줄 알았는데, 알고보니까 before의 단어와 after을 단어를 비교해서 before의 단어를 조합해 after의 단어로 온전히 만들
이 문제는 제 머리로는 아직 풀기가 어려워서 구글링을 해서 답안을 참고했는데, 그래도 이해하는대에만 1시간이 걸렸습니다... ㄷㄷㄷ 그래도 이해는 끝낸 상태라 최대한 자세히 설명을 붙여놨습니다. 그래서 많이 지저분해 보이실 수도 있겠으나, 최대한 자세히 붙여 넣으려 했
입출력 예제 2,3을 예시로 조건문의 뜻을 설명해보겠습니다.입출력 예제가 "(())()" 일때첫번째 문자는 (가 입력되는데, if문 조건에 맞지 않으므로 stack에 할당합니다. (stack=()두번째 문자도 조건문에 해당되지 않으므로 stack에 할당합니다. (sta
이 문제의 경우 goal의 배열을 for문으로 돌려서 각 cards1과 cards2의 가장 앞 카드의 단어들로 goal의 문장을 완성할 수 있을지에 대한 문제입니다.즉 goal의 "i" 라는 첫번째 단어를 cards1와 cards2의 맨 앞 카드를 꺼내어 "i"를 완성
문제를 보고 "아, 이건 5의 배수를 이용하면 되겠구나?" 라고 생각을 했는데 정작 5의 배수로는 풀 수 없는 문제라는 느낌이 들더라고요. 그래서 끝끝내 해답을 찾지 못하고 구글링을 해봤는데 거의 every 메서드를 사용하는 답안 외에는 찾기가 힘들어서그냥 적절히 완탐
해당 문제의 경우 도오오오오오오오저히 제 머리로는 알기가 어렵고, 이게 0레벨의 문제가 맞나 싶기도 해서 구글링을 해봤는데 여기서 한 참고에 의하면, 중간값을 구한 후 그 중간값을 주어진 num으로 나눈 값으로 시작 수를 구할 수 있다고 하더군요.참... 이 정도면 문
1. 문제 설명 > 2. 제한사항 > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 첫번째 문제 풀이(2023-12-28) >
이 문제의 경우 이중 for문을 사용하면서 name 배열에 photo 배열의 특정 배열의 이름이 들어있을때 name 배열의 해당 이름과 위치가 같은 yearning 배열의 값을 누적 합산 시켜준 후 photo의 특정 배열에 대한 순회가 끝나면 누적 합산 된 sum을 r
이 문제도 코딩테스트의 단골 유형중 기본인데, 제가 처음 풀어보는 입장이다보니 익숙한 for문 위주로 풀어서인지... 테스트케이스 50개 중 23개를 통과하는 기염(?)을 토했습니다. 당연히도 n^3의 성능이다보니 범위가 100,000 임에도 불구하고 그런 괴랄한 모습
이번 문제는 t를 먼저 스플릿으로 배열 처리를 해주고 p를 숫자로 포맷(Number)해준 후 for문을 돌리는데, 범위를 t의 길이에서 p의 길이를 뺀 값에 + 1 만큼 범위를 돌려 t를 순회하며 p의 길이만큼 자리값을 잘라주고(slice) 합쳐준 후(join) 정수로
주어진 숫자 n부터 시작해서 0까지 for문을 도는 동안 n을 i로 나눈 나머지가 1인 값을 arr에 push해준 후 for문이 끝나고 배열의 최소값을 반환합니다.
이 문제의 경우 경우의 수에 대한 완탐의 첫걸음이라고 보면 되겠습니다. 문제 풀이는 이중 for문을 돌렸는데, 첫번째 for문은 주어진 배열의 첫번째부터 배열의 -1까지(마지막 숫자는 두번째 for문에서 더할 것이므로 해당 범위를 설정) 돌리고 두번째 for문은 배열의
이 문제의 경우 주어진 예산에 맞춰 최대한 부서의 예산 배열의 값들을 사게 하는 문제인데, 욕심쟁이 방법으로 구하게 된다면 sort로 예산 배열을 오름차순을 한 후 budget을 부서 예산 배열의 작은 값부터 빼주면서 카운트를 해주든, 아니면 부서 배열의 작은 값부터
이 문제의 경우 배열로 변환하여 for문을 돌린 후 넘버의 길이의 - 4 까지의 영역을 \*로 바꾼 후 join으로 다시 합쳐 반환하는 방법도 있지만, String 메서드 중에는 subString과 repeat 메서드가 있으므로 이 둘을 활용해 보기로 했습니다.
솔직히 제한 조건의 두번째 조건은 무슨 말을 하는지는 모르겠지만, 배열의 최소값을 구하고 해당 배열의 최소값에 대한 인덱스를 찾아 그 값을 지운 후 만약 배열의 길이가 0이면 -1을 반환하고, 아니면 배열을 반환하는 방법으로 문제를 풀었습니다.
이번 문제는 이터러블인 문자열을 활용해 해당 문자열 하나하나에 접근해 각각의 알파벳 배열과 숫자 배열에 존재하는 값일 경우 그에 맞게 배열에 담은 후, 최종적으로 배열을 join으로 묶고 Number로 형변환 하여 반환함으로 코드를 풀었습니다.
이번 문제는 3진법에 대해 잘 몰라서 검색을 해봤는데 말 그대로 각 자리수가 0부터 2까지 총 세 개의 정수로 변환을 하는 형태라고 하네요.그래서 일단 10진법을 정수로 변환하는 부분은 해당 정수를 3으로 나눈 나머지를 저장하고, 다시 그 몫을 3으로 나누어 몫이 0이
이번 문제는 if-else 조건문 대신 삼항연산자를 사용해 깔끔히 처리했습니다. (물론 reduce로 더 깔끔하게 한 줄로 처리도 가능합니다.
우선 해당 문자열을 처리하기 위해 기존의 문자열을 split해준 후 배열에 할당하고, 배열을 순회 하면서 배열의 현재 요소가 공백이 아닐 때 조건문에 들어갑니다. 그 후 charCode 변수에 배열의 현재 문자열을 charCodeAt으로 변환한 값에 n(밀어내는 값)을
이번 문제는 2016년에 한정해서 푸는 문제라 달력을 좀 보고 시작을 했습니다. 1월 1일은 금요일(FRI) 이더라고요? 그래서 weekArray의 배열의 첫번째를 FRI로 잡고 다음 요일 순으로 일곱 요소를 넣어주었습니다.그리고 for문을 1(월요일) 부터 주어진 a
1. 문제 설명 > 2. 제한사항 > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 첫번째 문제 풀이(2024-01-02) > 이번 문제를 풀면서 일전에 쓰던 sort
1. 문제 설명(요약) > 2. 첫번째 문제 풀이(2024-01-02) faild > 이번 문제는 숫자 n의 범위에 대해서 소수가 몇개인지를 찾는 알고리즘을 구현하는 문제입니다. for문을 2부터 n까지 (실질적으로 0과 1은 소수로 치지 않기 때문에) 돌리는데 >
1. 문제 설명 > 2. 제한사항 > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 첫번째 문제 풀이(2024-01-03) > 일단 이번 문제는 이해하는데 한 20분을 쓸 만큼 되게
1. 문제 설명(요약) > 2. 첫번째 문제 풀이(2024-01-02) > 이 문제의 경우 honor(k 길이까지 랭크를 보관할 배열)과 lowerRank(시즌마다 최하위를 보관할 배열)을 설정하여 score의 길이만큼 for문을 돌리면서 점수들을 honor과 low
1. 문제 설명(요약) > 2. 첫번째 문제 풀이(2024-01-02) >
1. 문제 > 2. 입력 > 3. 출력 > 4. 입출력 예 > 5. 힌트 >![](https://velog.velcdn.com/images/re_go/post/7987b9f2
1. 문제 설명(요약) > 2. 첫번째 문제 풀이(2024-01-04) > 해당 문제의 경우 for문을 써서 i의 값이 짝수일 때 '수'를, 홀수일 때 '박'을 문자열에 담아서 반환화면 되는 문제라 지극히 쉽지만, > 저는 Array.from 메서드의 연습을 위해 한
1. 문제 설명 > 2. 제한사항 > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 첫번째 문제 풀이(2024-01-04) > 이번 문제는 스택으로 풀려고 했다가 아직 스택을
1. 문제 설명 > 2. 제한사항 > 3. 입출력 예 > 4. 입출력 예 설명 > 5. 첫번째 문제 풀이(2024-01-02) > 이번 문제는 callings의 배열의 값들을 꺼내어 해
이번 문제는 처음 풀어보는 레벨2의 기초 문제입니다. 그래서 시간을 거의 3시간 써먹어 가면서 풀었고요... ㅎ...일전에 이진 변화에 대한 문제를 몇 번 해봤었는데 이번에는 이 공식을 함수로 만들어서 활용을 해보자 생각하게 되었습니다.그리고 이진 변화에 있어서 uns
이번 문제를 풀면서 일전에 쓰던 sort 메서드의 콜백 함수의 쓰임에 대해서 좀 더 자세히 알 수 있었던 시간이었는데요. check를 false로 설정한 후 해당 값이 조건에 맞을 경우(현재 값보다 뒤의 값이 클 경우) result 배열에 담아주고 check를 true
이 문제는 문자열을 순회하면서 특정 단어의 연속성이 끊긴 뒤에 다시 등장할 경우에 해당 문자열 자체를 그룹 단어라고 보지 않는 문제인데요.즉, 'aaabbcc' 가 있다고 한다면 각 단어들은 같은 단어들 끼리 서로 연결이 되어있는 상태이므로 그룹 단어이고, 'aaabb
이 문제의 경우 문제를 이해하는데 꽤 소요가 걸린 문제였지만, 이해를 하고 나니 한결 편해진 문제였습니다. 또 이 문제에서 splice(https://velog.io/@re_go/Javascript-%EB%B0%B0%EC%97%B4-%EC%B4%9D%EC%A0
이 문제는 일전에 풀었었던 프로그래머스 괄호 문제 를 풀어봤던 상황이라 같은 방법으로 풀어볼까 하다가 음... 양심이 없을 듯 하여 😅 문자열 그대로 처리를 해보기로 했습니다.일단 원리는 똑같은데, 여는 괄호 '(' 가 등장할 때마다 count 변수를 증가시켜주고,
이번 문제의 경우 문제 해석에는 큰 문제가 없었는데요. 대신 기존에 써왔던 for문 대신 foreach를 활용하여 연습을 해보았습니다. 물론 이중 foreach도 가능한데 저는 일단 하나만 쓰는걸로... ㅎ....아무튼 알고리즘만 간단히 말씀드리면, for문을 돌면서
1. 첫번째 문제 풀이(2024-01-17) > >>
해당 문제의 경우, 나누기(/)와 나머지(%) 연산자를 활용해 풀 수 있었는데요.오랜만에 푸는 코테 문제라 1시간 30분을 까먹었네요 ㅎ...아무튼 제가 이해한 걸 사이클 순대로 설명드려보자면, 핵심은 다음과 같을 것입니다.연산을 할 쿠폰 수가 10이 될때까지(10장이
해당 문제는 입력된 문자를 split으로 공백을 기준으로 쪼개어 배열에 각각 저장한 후 그 길이만큼 for문을 돌리고, 다시 for문을 morse 객체의 길이만큼 돌리면서 배열 하나 하나의 값이 객체 하나 하나의 키의 이름과 같을 때 그 값을 result에 누적 연산
1. 첫번째 문제 풀이(2024-06-26) > 해당 문제는 세 가지 경우를 구해야 합니다. 하나는 주어진 두 변 중 가장 큰 변(max)을 찾는 것과, 가장 작은 변(min)을 찾는 것. > 또 하나는 찾은 큰 값(max)이 나머지 작은 값과 구해야 할 값의 함(mi
해당 문제 이중 반복문을 사용한 간단한 완전 탐색 알고리즘으로 문제를 풀었는데요.현재 배열의 요소가 다른 요소보다 값이 클 경우 우선 순위 변수(grade)를 증가시켜주기 때문에 별다른 어려움은 없었습니다.그럼 해당 공식을 적용한 자바스크립트 버전을 소개해 드리겠습니다
해당 문제는 중 반복문을 사용한 간단한 완전 탐색 알고리즘으로 문제를 풀었는데요.현재 배열의 요소가 다른 요소보다 값이 클 경우 우선 순위 변수(grade)를 증가시켜주기 때문에 별다른 어려움은 없었습니다.그럼 해당 공식을 적용한 자바스크립트 버전을 소개해 드리겠습니다
해당 문제는 while문을 실행하고, 그 안에 for문을 arr(문자들이 담긴 배열) 길이만큼 돌리고 돌리면서 앞의 글자가 배열의 글자 중 하나에 해당하면 startWith 메서드로 자르면서 result(문자열)에 현재 i (arr의 특정 문자의 인덱스를 의미하기도 함
해당 문제는 문자를 문자열로 변환해준 후 그 길이만큼 for문을 돌리면서 누적 연산을 시켜주는 굉장히 간단한 문제인데요. 다만 문자열로 바꾼 후 직접적인 접근이 가능한 JS에 비해, 자바에서의 문자열은 불변 객체의 특성 때문에 배열의 각 요소에 접근하는 것이 어려운데요
해당 문제는 일반적인 배열의 접근 순서 (왼쪽에서 오른쪽)를 이용하기 보다는 오른쪽에서 왼쪽으로(인덱스 0으로 이동) 이동을 하면서 가장 근접하면서 같은 숫자의 인덱스 차이를 이용해 찾고자 하는 값을 구했는데요.첫번째 for문은 배열의 순서대로 실행할 for문을, 두번
해당 문제는 left와 right의 범위만큼 for문을 돌리고, 그 안에 for문은 left부터 right까지의 숫자들의 약수 개수를 구한 뒤, 짝수면 누적합, 홀수면 누적감 시켜주면 되는데요. 해당 예제에서는 배열을 사용했는데요. 물론 약수일 때 임시 카운트 변수를
1. 첫번째 문제 풀이(2024-07-01) > 해당 문제 는 코테 문제에서 자주 등장하는 배열 회귀 문제로, 현재 인덱스에서 이동하고자 하는 인덱스를 더한 뒤 배열의 길이로 나눈 나머지를 취하는 형식으로 n칸을 이동한 뒤의 인덱스의 요소를 찾아올 수 있는데요. > 그
해당 문제 는 제가 예전에 풀었던 소수 찾기 문제와 경우의 수 문제를 참고했습니다. 문제의 핵심은 숫자 세 개를 빠짐 없이 더하는 루프와, 소수를 구하는 함수인데요. 0과 1은 소수가 아니기 때문에 함수의 for문 시작점은 2부터 세 자리수의 제곱근까지의 범위로 설정
해당 문제는 이전에 풀었던 문제를 참고해서 풀었는데요. 배열 순환에 대한 공식은 현재 인덱스 + 이동할 값 % 배열의 길이 이기 때문에 이 공식은 외워두면 편리하지 않을까 생각됩니다.그럼 해당 공식을 적용한 자바스크립트 버전을 소개해 드리겠습니다.자바스크립트 버전그리고
해당 문제는 순회를 이용하면서 각 단어에 문자열이 하나씩 들어있는지를 확인하는 문제인데요.문제는 각 문자열들이 불변 타입이다보니 배열에서 데이터를 하나 빼오는 작업과는 다르게 배열에서 문자열을 뺴와서 거기서 또 문자열을 빼는 상당히 복잡한 구조의 문제라고 생각이 되었습
해당 문제는 toString 메서드로 인한 각 숫자마다의 2진수 변환을 이용했는데요. 2진수로 변환 된 문자열에서 1의 개수가 몇개인지를 파악 해주는 함수를 하나 만들어 활용했습니다. 사실 원래는 2진수 구하는 식을 사용해 하나 하나 다 계산했는데요. 근데 toStr
1. 첫번째 문제 풀이(2024-07-05) > 해당 문제는 Lv2 짜리라 그런지 좀 많이 벅차더라고요 🤣 그래서 구글링을 좀 해봤는데요. 짝수일 때 2를 나누고, 홀수일 때 현재 n의 값을 -1로 만들어서 짝수로 맞춰주고, 이동값을 1 늘려주면 해결이 된다고 하더군
해당 문제는 Lv2 짜리라 그런지 좀 많이 벅차더라고요 🤣 그래서 구글링을 좀 해봤는데요. 짝수일 때 2를 나누고, 홀수일 때 현재 n의 값을 -1로 만들어서 짝수로 맞춰주고, 이동값을 1 늘려주면 해결이 된다고 하더군요. 그래서 계산을 해봤더니, 신기하게도 곱하기로
해당 문제는 아주 예전에 몇 번 깔짝대고 손을 대지 않았던 이중 배열 문제입니다. 그 중에서도 유명한 '빙고' 문제인데요. 그때 배열 문제를 왜 포기했나 싶었는데 배열 접근이 어려웠던 것이 가장 큰 원인이었다는걸 이번 문제를 보면서 오랜만에 또 느꼈습니다 😅아무튼 이
해당 문제는 저번 주에 풀었던 스택 문제의 기본기라고도 할 수 있는데요! 이번 문제도 나름 제 그림 실력을 발휘(?) 해서 해당 문제를 설명해 보겠습니다!짝이 맞는 경우(자료 출처 : 미리캔버스로 제작했습니다.)짝이 맞지 않는 경우 다음은 해당 문제를 JS 버전으로 푼
해당 문제는 꽤나 까다로워서 애를 먹긴 했지만, 함수를 따로 만들어서 문제를 풀었는데요. 일단 문제 풀이를 위한 절차를 설명해보면 다음과 같습니다.keymap의 문자열들 중 targets의 문자들 각각에 최소한으로 타이핑 할 수 있는 문자열을 찾는다. (이 과정에서 최
1. 첫번째 문제 풀이(2024-07-12) 해당 문제는 문제가 이상? 한 느낌이 없지않아 있는데요. 최대 이익이라고 하는데 곱하는건 최소값을 곲하니... 음.... 뭘까요... 아무튼 문제 설명에서 이상하긴 한데 그래도 풀어내긴 했습니다. 문제를 설명해 드리면 과