머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.
첫 번째로 생각한 풀이 방법은 배열을 문자열로 바꾼 다음에 for of 반복문으로 7의 개수를 카운팅하는 것이다.
function solution(array) {
let answer = 0;
for(let el of array.join('')){
el === '7' ? answer++ : 0
}
return answer;
}
두 번째로 생각한 방법은 문자열로 바꾸지 않고 배열 상태에서 filter()를 이용해 7만 남기는 것이다.
(숫자를 하나씩 쪼개기 위해 join()했다가 다시 split()해야 하는 번거로움이 있긴 하지만 코드는 더 짧다.)
function solution(array) {
return array.join('').split('').filter(el => el == '7').length
}
문자열로 바꿔서 푸는 방법중 split()
을 이용한 풀이 방법도 있다.
'7'을 기준으로 split해주면 7에 해당하는 것은 ""로 바뀌고, 7이 아닌 것은 하나로 합쳐진다. 따라서 배열 길이에 -1을 해주면 개수를 구할 수 있다.
ex)
[7, 77, 17] -> ["","","","1",""]
ex)
[10, 29] -> ["1029"]
function solution(array) {
return array.join('').split('7').length-1;
}
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
반복문과 slice()를 이용해 문자열을 n씩 잘라서 빈 배열에 담아준다.
function solution(my_str, n) {
var answer = [];
for(let i=0;i<my_str.length;i+=n){
answer.push(my_str.slice(i,i+n))
}
return answer;
}
정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.
array = [1, 1, 2, 3, 4, 5]
n = 1
for(i of array){
array.includes(n) ? answer+=1 : answer+=0;
}
👉🏻 1을 포함하고 있으니까 answer에 1이 추가되고, 이 시행이 6번 반복되므로 6이 나왔던것! (배열 전체에서의 포함여부만 확인하고, 배열에 있는 원소 하나하나와 비교하지 못함.)
👉🏻 includes 대신 비교연산자를 사용해서 해결된듯 하였으나 틀림!
틀린 코드
function solution(array, n) {
var answer = 0;
for(i of array){
array[i] == n ? answer+=1 : answer+=0;
}
return answer;
}
for(i of array)
를 index로 접근하려고 해서 문제가 발생한 것!👉🏻 for(element of array)
는 index가 아닌 element에 접근하는 명령문!
👉🏻 i가 element를 가리키므로 array[i] == n
이 아닌 i == n
으로 해주면 됨.
수정한 코드
function solution(array, n) {
var answer = 0;
for(i of array){
i == n ? answer++ : 0;
}
return answer;
}
⭐️ 배열 안에 요소가 있는지 확인하는법
.indexOf(element, index)
해당 요소의 index 반환함.
.includes(keyword)
T/F 반환함.
.find(keyword)
함수(주로 화살표 함수)를 입력 매개 변수로 사용. 해당 요소의 값을 반환함.
.filter(keyword)
배열을 반환함.
for(element of array)
배열 안의 element들을 하나하나 순회함.(주의 : index 아님!)
머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.
map( )을 이용해 배열을 하나씩 돌면서 주어진 값보다 크면 갯수를 하나씩 추가해준다.
function solution(array, height) {
var answer = 0;
array.map((h) => h > height ? answer++ : 0);
return answer;
}
filter( )를 이용해 배열에서 조건에 해당하는 수만 남기고, 갯수를 구해주는 풀이.
function solution(array, height) {
var answer = array.filter(item => item > height);
return answer.length;
}