본문 바로가기

항해99_10기

(109)
[30번][중급] 나머지가 1이 되는 수 찾기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 답 * 나머지가 1이 되는 수 찾기 * n % x === 1이 되게 하는 가장 작은 자연수 x의 값을 리턴 * 로직 : (n-1) % x === 0이라는 의미 이므로, 1을 제외한 (n-1)의 약수 중에 가장 작은 값을 찾으면 됨 [pseudo code] 1. 2 ~ (n-1) 값까지 루프를 돌면서 (n) % i === 1인 값을 맨 처음 찾았을 때, 이를 리턴 function solution(n) { for (i = 2; i
[29번][중급] K번째 수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 답 [pseudo code] 1. shallow copy 문제로, array의 값을 stringify 했다가 다시 배열로 만들어 줘야 함 => shallow copy가 아니라, split 함수 자체가 원본을 자르는 것임..! (temp = array.split(1,1)을 했다면, temp 값에는 원본에서 잘라낸 배열을, array 배열에는 부분이 잘려나간 나머지를 리턴해주는 것임!!) 2. 자른 배열을 받을 temp = []생성, answer =[]생성 2. command는 배열 속의 배열로 되어 있음 ..
[28번][중급] 최대공약수와 최소공배수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 답 [pseudo code] 최소공배수 = Math.abs(a*b)/최대공약수 최대공약수 = n의 약수 중 m의 약수와 같은 최대 값 약수 let sqrt = Math.sqrt(n); for (let i = 1; i 작은값 순으로 검사) - gcd
[27번][중급] 예산 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 답 로직 : d 베열 요수의 부분합 a-b) 변수를 선언 3. while (partialSum >= budget) - partialSum = arr.reduce > budget => pop 4. arr.length를 리턴 function solution(d, budget) { d.sort((a, b) => a - b); let partialSum = d.reduce((acc, curr) => acc + curr, 0); while (partialSum > budget) { d.pop(); partialS..
[26번][중급] 약수의 합 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 답 약수의 합 => 숫자의 약수는 1~제곱근까지의 정수와 그 배수로 이뤄져 있음을 이용. [pseudo code] 1. 입력받은 정수의 제곱근을 변수로 선언 2. 1 ~ 제곱근까지 돌면서 정수 % i 값이 0(정수의 factor)이고, i 제곱근 값이 아니라면(예를 들어 4의 경우, 제곱근 값이 2이므로, 2 % 2는 의미 없음) i와 n/i 값을 모두 answer에 더해주고, 만약 i = 제곱근 값이라면 i만 더해줌 function solution(n) { let answer = 0; let sqrt ..
[25번][중급] 약수의 개수와 덧셈 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 답 [pseudo code] 1. 입력받은 range의 시작과 끝을 사용해 for loop 생성 2. odd & even = [] 약수의 개수가 홀/짝인 숫자를 각각 담아줌 3. num arr의 요소를 하나씩 인자로 받아서, 해당 숫자의 약수를 뽑아줄 countFactor(num)을 생성 - count 변수를 선언하고, 아래 판별식에 따라 숫자를 올려줌 - 1 ~ num까지 for loop 생성 - num % i === 0일 경우, count++ - return count 4. 만약, countFacto..
[23번][중급] 시저암호 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 답 [pseudo code] 1. a~z를 list로 만들기 list 만들 때, 2배로 만들기 2. 입력받은 s의 각 자리수를 돌면서 ref.indexOf(s[i])를 찾아 n만큼 더한 index 값을 넣어 s를 replace - 이때, 대소문자 구분, 그리고 공백 처리를 해줘야 함 function solution(s, n) { let answer = ""; ref = "a b c d e f g h i j k l m n o p q r s t u v w x y z " .repeat(2) .trim() .s..
[24번][중급] 신규 아이디 추천 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 답 [instruction] 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, ne..