알고리즘

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120815 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 n명이 모두 같은 수의 조각 피자를 먹기 위해서는 n과 조각수의 최소 공배수를 구하면 된다. 그리고 그 공배수를 n으로 나누면 인당 몇 조각을 먹었는지 구할 수 있다. function solution(n) { const gcd = (a, b) => (a % b === 0 ? b : gcd(b, a % b)); const lcm = (a, b) => (a * b) / gcd(a, b);..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120846 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 합성수가 되려면 약수가 3개 이상이어야 된다. 2,3,5,7 로 나누어떨어지거나 루트를 씌웠을때 정수가 나오면 약수를 3개 이상 가졌다고 볼 수 있다. function solution(n) { let answer = 0; for (i = 4; i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 배열을 돌면서 구조분해할당을 통해 i,j를 꺼내 둘의 자리를 바꿔준다. arr[i] = arr[j]가 되고 arr[j[]는 arr[i]가 된다. function solution(arr, queries) { queries.forEach(([i, j]) => { [arr[i], arr[j]] = [arr[j], arr[i]]; }); return arr; }
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 shift() =>. 맨 앞의 숫자를 제거하고 그 숫자를 반환 push() => 맨 뒤에 숫자를 추가 pop() => 맨 뒤의 숫자를 제거하고 그 숫자를 반환 unshift() => 맨 앞에 숫자를 추가 function solution(numbers, direction) { if (direction === "left") { numbers.push(numbers.shift()); } e..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120887 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 i부터 j까지 반복을 실행하면서 배당되는 숫자를 k를 기준으로 쪼개본다. 77을 7로 쪼갤 경우 "","", "", 117을 쪼갤 경우 "11","" 이렇게 나오게 된다. 즉 split(k).length-1 하면 k의 개수를 구할 수 있다. function solution(i, j, k) { let answer = 0; for (let index = i; index
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 n만큼 잘라서 배열에 넣어야하므로 최대 반복수를 전체/n으로 정한다. 그리고 일정하게 잘라서 push로 배열에 넣어준다. function solution(num_list, n) { let answer = []; for (let i = 0; i < num_list.length / n; i++) { answer.push([...num_list.slice(i * n, i * n + n)])..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 가장 가까운 수를 어떻게 찾을까 고민하다가 첫번째로 든 생각.. 우선, 해당 숫자를 배열에 추가한 후 정렬한다. 앞, 뒤 숫자를 비교한 후 더 가까운 수를 리턴한다. 코드로 정리해 보자 1. 해당 숫자를 포함한 배열을 오름차순으로 정렬한다. 2. 해당 숫자의 위치(인덱스)를 찾아 앞, 뒤 숫자를 구한다. 이때 앞, 뒤의 값이 없을 경우를 대비해 0을 할당해준다. 3. 0이 들어올 경우..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 해당 문자열을 정규식을 이용해 abc를 탐색 후 공백으로 치환한다. 공백기준으로 문자열을 쪼갠 후 => 공백을 필터링해서 제거한다. 만약 문자열의 길이가 0이라면, 조건대로 empty를 리턴해준다. 해당 문자에서 a,b,c를 어떻게 찾느냐..가 문제의 쟁점인거 같다. function solution(myStr) { const str = myStr .replace(/[abc]/g, " ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 조건을 정리해보자 1. flag[i] 값이 true면 arr[i]을 arr[i]*2번 추가 2. flag[i] 값이 false라면 마지막 arr[i]개의 원소를 제거 arr 배열을 돌면서 플래그 값을 검사해 플래그 값이 true인 경우에는, arr[i]의 두배한 수만큼 arr[i]를 추가해준다. 반대로 false인 경우에는 splice를 이용해 잘라내어준다. (slice는 원본을 그대..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/181905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 특정 문자를 잘라낸 후 뒤집어 주고, 그 문자의 앞, 뒤를 잘라내서 합쳐주었다. function solution(my_string, s, e) { const reverseStr = my_string .slice(s, e + 1) .split("") .reverse() .join(""); return my_string.slice(0, s) + reverseStr + my_string.s..
빔네모
'알고리즘' 태그의 글 목록 (8 Page)