알고리즘 100일 챌린지 50

자바스크립트 알고리즘 52 일차 (프로그래머스)

52일차 첫번째 문제 문제: 나머지가 1이 되는 수 찾기 난이도: 하 풀이 과정: 나머지가 1이 되는 가장 작은 자연수를 찾기 위해서 매개변수 n 개수만큼 for 문을 순회하고 n % i 나눈 나머지 값이 1 조건에 만족하는 경우가 가장 작은 자연수 이기때문에 i 값을 return 한다. 참고사항: 산술 연산자: % 나눈 나머지값을 반환 https://school.programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

자바스크립트 알고리즘 51 일차 (프로그래머스)

51일차 첫번째 문제 문제: 숫자 문자열과 영단어 난이도: 중 풀이 과정: 매개 변수 s 문자열 length만큼 for문을 순회하고 변수 2개들 만들고 순회하는 원소 값이 숫자면 정규식 조건에 걸려 result 에 값을 할당하고 숫자가 아니고 문자열이면 currentNumber에 문자를 할당해서 numberMap에 문자열에 프로퍼티가 할당 되면 프로퍼티에 값을 할당하고 currnentNumber 값을 초기화 해준다. 참고사항: 문자열도 길이가 있어서 for문 순회가 가능하다. hasOwnProperty는 객체에 특정 값이 있는지 블리언 값으로 반환한다. https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용...

자바스크립트 알고리즘 50 일차 (프로그래머스)

50일차 첫번째 문제 문제: 제일 작은수 제거하기 난이도: 하 풀이 과정: 매개변수 arr를 Math.min 스프레드 구문으로 배열에 최소값을 찾아서 상수에 담고 매개변수 arr filter 메소드를 활용해서 최소값에 상수와 다른것들만 걸러내서 상수에 담는다. 배열에 값이 1개거나 이하라면 [-1]반환하고 아니면 filter로 걸러낸 배열에 값을 return 참고사항: Math.min() 최소값을 찾을수 있고 스프레드 구문으로 배열에 최소값을 찾는다. Math.max() 최대값을 찾을수 있다. filter 함수는 배열에 순회해서 값들을 필터할 수 있다. 삼항연산자 true = ? false = : https://school.programmers.co.kr/learn/courses/30/lessons/12..

자바스크립트 알고리즘 49 일차 (프로그래머스)

49일차 첫번째 문제 문제: 직사각형 별찍기 난이도: 하 풀이 과정: row 3줄이며 a N개수 만큼 * 채워져야해서 repeat 함수로 문자열을 개수만큼 돌려서 셋팅하고 b개수만큼 for 문을 순회하며 값을 출력한다. 참고사항: repeat 함수는 문자열은 개수만큼 반복한다. 이 문제 로직은 게시판에서 별표 평점을 내는 기능이나 이런곳에서 활용할수 있는 로직으로 문제를 풀었다. https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

자바스크립트 알고리즘 48 일차 (프로그래머스)

47일차 첫번째 문제 문제: 부족한 금액 계산하기 난이도: 중하 풀이 과정: 매개변수 price, money, count 자연수로 넘어오고 count만큼 for문을 순회하고 result 변수에 price N배의 값을 축적한다. money 값이 result 값에 같거나 이상이면 반환할 값이 없기 때문에 0 아니라면 result값과 money값을 빼줘서 return한다. 참고사항: 삼항연산자는 조건 연산자로 가독성과 쉽게 조건문을 표현할 수 있다. https://school.programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을..

자바스크립트 알고리즘 47 일차 (프로그래머스)

47일차 첫번째 문제 문제: 없는 숫자 더하기 난이도: 중하 풀이 과정: 매개변수로 넘어오는 배열에 원소는 0~9 중 일부가 있어서 0~9 숫자가 담긴 배열을 하나 만들고 for문으로 순회하면서 매개변수 배열에 특정 숫자가 없으면 그 숫자를 result에 더해서 return 값을 반환 참고사항: let 블록스코프이며 재할당이 가능하다. includes 메소드는 특정 문자열을 찾는데 사용하면 특정문자열이 있으면 true 없으면 false 반환한다 https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을..

자바스크립트 알고리즘 46 일차 (프로그래머스)

46일차 첫번째 문제 문제: 같은 숫자는 싫어 난이도: 하 풀이 과정: 매개변수 arr 배열에 길이 만큼 for문을 순회하고 상수로 새로운 배열과 벼수로 prev 값을 정의하고 prev 값하고 순회하는 arr배열에 원소값하고 같지 않다면 새로운 배열 result 넣으면 중복되는 숫자를 넣지 않은 배열을 return 할수 있다. 참고사항: 순회하는 현재값과 이전값에 조건이 중요하다. https://school.programmers.co.kr/learn/courses/30/lessons/12906?language=javascript# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. progr..

자바스크립트 알고리즘 45 일차 (프로그래머스)

45일차 첫번째 문제 문제: 푸드파이트 대회 난이도: 중 풀이 과정: 매개변수 food 배열에 문제설명에 음식개수를 2로 나눠서 Math.floor로 소수점을 내려서 새로운 배열을 만든다. divide 배열을 순회하면서 2로나눈 원소값만큼 idx 값을 돌려서 result 문자열에 놓고 sort함수로 내림차운 새로운 배열은 만들고 문자열을 조합해서 return 참고사항: Math.floor 메소드로 소수전음 내린다. ex: 1.5 > 1 repeat 함수 현재 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열. ex "1".repeat(2) > "11" [...값] 깊은 복사로 새로운 메모리에 배열을 저장하고 sort함수로 내림차순을 만들고 join으로 문자열로 반환. https://school.prog..

자바스크립트 알고리즘 44 일차 (프로그래머스)

44일차 첫번째 문제 문제: 크기가 작은 부분문자열 난이도: 하 풀이 과정: 매개변수 t, p에서 p 길이를 뺀 t 길이 만큼 for문을 순회하고 substring 메소드로 3개씩 문자열로 짜르고 매개변수 p 값과 substring 짜른 문자열을 정수로 변환해서 작거나 같으면 count 변수에 1 축적해서 return 한다. 참고사항: substring 메소드는 문자열을 짜를수있다. 변수 앞에 + 의미는 Number 정수변환 의미다. https://school.programmers.co.kr/learn/courses/30/lessons/147355?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기..

자바스크립트 알고리즘 43 일차 (프로그래머스)

43일차 첫번째 문제 문제: 두수의 합 난이도: 하 풀이 과정: 매개변수 a, b를 BigInt 활용해서 숫자형으로 형변환을 해서 a, b를 더하고 toString() 함수로 문자열로 변환해서 값을 반환 참고사항: Number 객체는 2^53 - 1 최대 수를 표현할 수 있다. 그래서 BigInt를 활용해서 2^53 -1 이상에 수를 표현할 수있다. toString() 형변환으로 문자열로 변환시킨다. https://school.programmers.co.kr/learn/courses/30/lessons/181846 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co..

자바스크립트 알고리즘 42 일차 (코딩도장)

42일차 첫번째 문제 문제: 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수 난이도: 코딩테스트 문제 풀이 과정: s 배열에 값이 있고 ss는 slice 활용해서 깊은 복사로 인덱스 1부터 시작하는 새로운 메모리에 저장된 배열을 생성 s배열에 원소를 순회하면서 인덱스 1부터 시작하는 ss 배열로 각 쌍의 배열을 반환한다. [ [1,3], [3, 4], [4, 8], ...] sort 함수를 활용해서 각 쌍의 두번째 요소와 첫번째 요소의 차이를 기준으로 오름차순으로 정렬을 하면 차이가 가장작은 쌍의 정렬된 배열로 반환이 된다. const s = [1, 3, 4, 8, 13, 17, 20] const ss = s.slice(1) s.map((v, i) => [v, ss[i]]..

자바스크립트 알고리즘 41 일차 (프로그래머스)

41일차 첫번째 문제 문제: 배열 만들기6 난이도: 하 풀이 과정: 매개변수 arr에 원소들을 for문으로 순회를하고 새로운 배열 stk 마지막 값과 순회하는 arr 값이 같으면 stk배열에 마지막 값을 지우고 아니면 stk 배열에 arr 원소 값을 넣는다. for문을 순회하고 return값으로 빈배열이면 [-1] 값을 아니면 stk 값을 반환하면 된다. 참고사항: javascript 배열에 유용하게 사용가능한 함수 정리 .push(): 배열의 맨뒤에 값을 추가. .unshift(): 배열의 맨앞에 값을 추가. .pop(): 배열에 맨뒤 값을 제거 .shift(): 배열에 맨앞 값을 제거 https://school.programmers.co.kr/learn/courses/30/lessons/181859 ..

자바스크립트 알고리즘 40 일차 (코딩도장)

40일차 첫번째 문제 문제: 1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가? 난이도: 코딩테스트 문제 풀이 과정: 새로운 배열 10000개를 0으로 채워주고 map으로 10000숫자를 idx 순서로 채워준다. toString 함수로 배열에 숫자를 문자열로 만들어주고 split("") 모든 숫자를 배열로 만든다. 거기서 배열안에 8이 들어가는 모든 원소 값을 걸러주면 10000개 안에 들어가는 8의 개수를 찾을수 있다. const arr = Array(10000).fill(0).map((val, idx) => idx).toString().split("").filter((val) => val === "8").length 참고사항: 새로운 배열에 fill 함수로 0값을 채우고 map idx로 0~9..

자바스크립트 알고리즘 39 일차 (프로그래머스)

39일차 첫번째 문제 문제: 겹치는 선분에 길이 난이도: 중 풀이 과정: 매개변수에 lines 2차원 배열에 개수에 겹치는 부분은 중복이 되는 개념으로 새로운 배열을 만들어 준다. 문제에 -100 에서 100까지에 원소값이 있기때문에 200개의 배열을 0으로 채워준다. 매개변수를 foreach로 순회를 하고min < max만큼 순회를 돌명선 새로운 배열에 값을 채워나간다. +100은 음수값에 대한 예외로 min + 100개 값에 index 부터 시작한다. 참고사항: foreach는 map 같은 개념으로 배열을 순회한다. new Array는 새로운 배열을 만들고 fill 배열에 값을 채워준다. 만약에 1일라면 200개 배열에 값은 1로 채워진다. https://school.programmers.co.kr/..

자바스크립트 알고리즘 38 일차 (프로그래머스)

38일차 첫번째 문제 문제: 조건에 맞게 수열 변환하기1 난이도: 하 풀이 과정: 매개변수 arr넘오고 배열에 원소를 순회하기위해서 map함수를 사용하고 원소에 값으로 if 조건을 만들어준다 설명에서 말했듯이 val 값이 50보다 크거나 짝수라면 나누기 또는 짝거나 홀수라면 곱하기로 원소에 값들은 반환한다. 참고사항: if문에 &&는 and 뜻에 논리 연산자이고 ||는 or뜻에 연산자이다. https://school.programmers.co.kr/learn/courses/30/lessons/181882 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

자바스크립트 알고리즘 37 일차 (프로그래머스)

37일차 첫번째 문제 문제: 무작위로 K개수 뽑기 난이도: 중 풀이 과정: 매개변수 arr 길이 만큼 for문을 순회하고 빈배열 result에 arr원소값을 담아준다. includes에 중복문자열이 없는 값들을 배열에 넣고 result 배열에 길이하고 매개변수 k에 길이하고 같으면 break로 for문을 빠져 나오고 result에 길이가 k보다 작으면 result 배열 원소 값을 -1 바꿔준다. 참고사항: includes는 특정문자열을 찾는 메소드로 있으면 true 없으면 false를 반환한다. for문, while문은 배열을 순회하는 방식이다. break 순회하는 배열을 빠져나오게 한다. https://school.programmers.co.kr/learn/courses/30/lessons/181858..

자바스크립트 알고리즘 36 일차 (프로그래머스)

36일차 첫번째 문제 문제: 대소문자 바꿔서 출력 난이도: 하 풀이 과정: str 문자열 값을 split 함수로 배열로 만들고 map돌려서 javascript 알파벳 소대문자 메소드를 활용해서 값을 반환하고 join 함수로 문자열 반환 참고사항: javascript 알파벳 소대문자 메소드로 toUpperCase() (대문자) 와 toLowerCase() (소문자) 사용한다. https://school.programmers.co.kr/learn/courses/30/lessons/181949?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programme..

자바스크립트 알고리즘 35 일차 (프로그래머스)

35일차 첫번째 문제 문제: OX퀴즈 난이도: 하 풀이 과정: 매개변수 quiz에 원소들을 for문을 돌려 순회하고 원소에 값들을 split하고 구조분해할당으로 if 조건문으로 값을 할당. 참고사항: 배열, 객체에 값들을 분해해서 값을 할당받을수 있는 표현식. https://school.programmers.co.kr/learn/courses/30/lessons/120907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

자바스크립트 알고리즘 34 일차 (프로그래머스)

34일차 첫번째 문제 문제: 안전지대 난이도: 중 풀이 과정: 2차원 배열에 매개변수에 총 길이를 상수에 담고, d 2차원 배열로 특정 방향들을 찾아준다. 2중 for문으로 매개변수에 1의 값을 찾아주고 상하 좌우 대각선에 값을들 찾아서 new Set에 추가를 해주고 n * n - new Set 객체 사이즈 만큼 삭제를 한다. 참고사항: new Set: 객체는 중복되지 않는 유일한 값들에 집합이다. forEach는 배열을 순회하는 여러 방법중 하나다. map 비슷한 함수 https://school.programmers.co.kr/learn/courses/30/lessons/120866?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발..

자바스크립트 알고리즘 33 일차 (프로그래머스)

33일차 첫번째 문제 문제: 다항식 더하기 난이도: 중 풀이 과정: 매개벼수 polynomial을 split(" + ") 함수로 공백 + 기준으로 짤라주고 동류항과 일반항에 값을들 더하는 변수 값들을 만들어준다. result 배열에 상수를 만들어서 각각에 값들을 만들어 준다. 참고사항: filter로 includes 메소드에 x값이 true or false로 배열에 원소값을 걸러준다. replace로 x를 빈값 or 1로 반환 reduc함수로 값을 더한다. if 문에 !로 판명되는 값들은 undefined, null, NaN, 0, -0, "", false는 false로 판명되서 if (!xNumber)로 조건을 걸수 있고 ! 없다면 true 값이 로직을 타게된다. https://school.progra..