프로그래머스 : JavaScript 알고리즘 Level.1 6일
프로그래머스 : JavaScript 알고리즘 Level.6
1. 가운데 글자 가져오기 : 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
function solution(s) {
var answer = '';
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
s | return |
"abcde" | "c" |
"qwer" | "we" |
답 확인하기
function solution(s) {
var answer = '';
if (s.length % 2 == 0 ) { // 짝수일 경우,
answer = s[s.length / 2 - 1] + s[s.length / 2];
} else {
answer = s[Math.floor(s.length/2)]; // 홀수일 경우, 반내림 하기
}
return answer;
}
해설 확인하기
코드는 주어진 문자열 s에서 중앙에 있는 한 개 또는 두 개의 문자를 추출하여 반환하는 JavaScript 함수입니다. 함수명은 solution이며, s는 문자열입니다.
함수 내부의 동작을 설명하겠습니다:
먼저, 빈 문자열 answer를 선언하여 결과를 저장할 준비를 합니다.
if (s.length % 2 == 0) 문으로 시작합니다. 이것은 주어진 문자열 s의 길이가 짝수인 경우를 처리하는 블록입니다.
짝수인 경우, 두 개의 문자를 중앙에서 추출하여 answer에 할당합니다. s.length / 2 - 1과 s.length / 2로 중앙의 두 인덱스를 찾아 해당 문자들을 answer에 저장합니다.
else 문으로 이동합니다. 이것은 주어진 문자열 s의 길이가 홀수인 경우를 처리하는 블록입니다.
홀수인 경우, 한 개의 문자만 중앙에서 추출하여 answer에 할당합니다. Math.floor(s.length/2)로 중앙의 인덱스를 찾아 해당 문자를 answer에 저장합니다.
최종적으로 answer를 반환합니다.
이 함수는 주어진 문자열 s의 길이에 따라서 중앙에 위치한 한 개 또는 두 개의 문자를 추출하여 반환합니다. 예를 들어, 문자열 abcd가 주어진 경우, 길이가 짝수이므로 중앙의 두 문자인 bc를 반환합니다. 문자열 abcde가 주어진 경우, 길이가 홀수이므로 중앙의 한 문자인 c를 반환합니다.
2. 수박수박수박수박수박수? : 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
function solution(n) {
var answer = '';
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
n | return |
3 | "수박수" |
4 | "수박수" |
답 확인하기
function solution(n) {
let result = ""
for(let i = 1; i<=n; i++){
if(i % 2 === 0){
result += "박"
}else{
result += "수"
}
}
return result
}
해설 확인하기
코드는 정수 n을 인자로 받아서 "수박" 패턴을 만들어서 반환하는 JavaScript 함수입니다. 함수명은 solution이며, n은 양의 정수입니다.
함수 내부의 동작을 설명하겠습니다:
먼저, 빈 문자열 result를 선언하여 결과를 저장할 준비를 합니다.
for 루프를 사용하여 1부터 n까지의 숫자를 순회합니다.
각 숫자 i가 짝수인지 홀수인지 확인합니다. i % 2 === 0은 i가 짝수인 경우를 확인합니다.
i가 짝수인 경우에는 "박"을 result에 추가합니다.
i가 홀수인 경우에는 "수"를 result에 추가합니다.
모든 숫자를 순회한 후, result의 최종 값을 반환합니다.
이 함수는 주어진 n에 따라 "수박" 패턴을 만들어서 반환합니다. 예를 들어, n이 3인 경우에는 "수박수"를 반환하고, n이 5인 경우에는 "수박수박수"를 반환합니다. 이렇게 n이 짝수일 때 "박", 홀수일 때 "수"를 순서대로 추가하여 패턴을 만듭니다.
3. 내적 : 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)
function solution(a, b) {
var answer = 1234567890;
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
a | b | result |
[1, 2, 3, 4] | [-3, -1, 0, 2] | 3 |
[-1, 0, 1] | [1, 0, -1] | -2 |
답 확인하기
function solution(a, b) {
var answer = 0;
for (let i = 0; i < a.length; i++) {
answer += a[i]*b[i];
}
return answer;
}
해설 확인하기
코드는 두 개의 배열 a와 b를 인자로 받아서 두 배열의 요소들을 각각 곱하고, 그 결과들을 모두 더하여 반환하는 JavaScript 함수입니다. 함수명은 solution이며, a와 b는 숫자들을 원소로 가지는 배열들입니다.
함수 내부의 동작을 설명하겠습니다:
먼저, 결과값을 저장할 변수 answer를 0으로 초기화합니다.
for 루프를 사용하여 배열 a의 길이만큼 순회합니다.
각 순회에서 a[i] * b[i]를 계산하여 answer에 더합니다. a[i]와 b[i]는 배열 a와 b의 각 인덱스에 위치한 요소들을 의미하며, 해당 요소들을 곱한 값을 answer에 누적하여 더합니다.
모든 순회가 끝난 후, answer의 최종 값을 반환합니다.
이 함수는 두 배열 a와 b의 요소들을 각각 곱한 결과들을 모두 더하여 반환합니다. 이는 두 배열의 같은 인덱스 위치에 있는 요소들을 곱한 값들을 모두 더하는 것을 의미합니다. 예를 들어, a가 [1, 2, 3]이고 b가 [4, 5, 6]인 경우, 14 + 25 + 3*6을 계산하여 32를 반환합니다.
4. 약수의 개수와 덧셈 : 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
function solution(left, right) {
var answer = 0;
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
left | right | result |
13 | 17 | 43 |
24 | 27 | 52 |
답 확인하기
function solution(left, right) {
var answer = 0;
for (let i = left; i <= right; i++) {
if (Number.isInteger(Math.sqrt(i))) { // 제곱근이 정수면 약수의 개수는 홀수
answer -= i;
} else {
answer += i;
}
}
return answer;
}
// isInteger : 주어진 값이 정수인지 판별합니다.
// sqrt : 제곱근의 비음수 값을 계산합니다.
해설 확인하기
코드는 두 개의 정수 left와 right를 인자로 받아서, left부터 right까지의 숫자들 중에서 약수의 개수가 홀수인 숫자들의 합에서, 약수의 개수가 짝수인 숫자들의 합을 뺀 값을 반환하는 JavaScript 함수입니다. 함수명은 solution이며, left와 right는 양의 정수입니다.
함수 내부의 동작을 설명하겠습니다:
먼저, 결과값을 저장할 변수 answer를 0으로 초기화합니다.
for 루프를 사용하여 left부터 right까지의 숫자들을 순회합니다.
각 숫자 i에 대해서 Math.sqrt(i)로 i의 제곱근 값을 계산합니다.
Number.isInteger(Math.sqrt(i))로 i의 제곱근이 정수인지 확인합니다. 즉, i가 완전제곱수인지를 판별합니다.
i의 제곱근이 정수인 경우, 즉 i가 완전제곱수인 경우에는 answer에서 i를 뺍니다. 이는 i의 약수의 개수가 홀수라는 의미입니다.
그렇지 않은 경우에는 answer에 i를 더합니다. 이는 i의 약수의 개수가 짝수라는 의미입니다.
모든 숫자를 순회한 후, answer의 최종 값을 반환합니다.
이 함수는 left부터 right까지의 숫자들 중에서 약수의 개수가 홀수인 숫자들의 합에서, 약수의 개수가 짝수인 숫자들의 합을 뺀 값을 반환합니다. 예를 들어, left가 10이고 right가 15인 경우, 약수의 개수가 홀수인 숫자는 10과 15이며, 이들의 합은 25입니다. 약수의 개수가 짝수인 숫자는 11, 12, 13, 14이며, 이들의 합은 50입니다. 따라서 결과값으로 25 - 50 = -25를 반환합니다.