{
const arr = [1,1,3,3,0,0,1,1];
function solution(arr) {
return arr.filter((item, idx) => item !== arr[idx+1]); // item 순서와 arr+1에서의 순서를 서로 나열했을 때 중복되는 값을 제거!
}
console.log(solution(arr)) // 1,3,0,1
}
{
const arr = "webstoryboy";
function solution(s) {
const answer = '';
return s.length % 2 == 1 ? s[s.length/2 | 0] : s.slice(s.length/2 - 1, s.length/2 + 1);
// 삼항 연산자 문제로 문자열에서 가운데 값을 찾는 알고리즘!
// 문자열의 length값은 자릿수로 계산. 즉 s.length의 갯수는 11개이므로 11%2==1 이면 11 / 2 | 0(|은 또는 이라는 의미지만 배열에서 사용할 경우 두 수의 합을 구한다. 또한 값을 정수로 인식하기 때문에 5가 나오게 된다.)
//즉 5 | 5 번째 자리의 문자열을 출력
}
console.log(solution(arr)); // o
}
{
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function solution(numbers){
var answer = 0;
for(let i =0; i<numbers.length; i++){
answer = answer + numbers[i]
}
answer = answer/numbers.length;
return answer;
}
console.log(solution(arr));
//평균을 구하는 문제로 for문을 통해 배열의 총합을 구하여 answer에 대입한 뒤 그 값을 배열의 자릿수로 나누는 식 입니다... 실수로 틀려버렸네요 ㅠㅠ
// 5.5
}
{
const num = "webstoryboy";
function solution(s) {
let answer;
let arr = [...s] //펼침연산자로 새로운 배열을 만듭니다. [w,e,b,s,t,o,r,y,b,o,y]
if(arr.length % 2 == 0) {
answer = arr.splice(arr.length/2-1, 2);
} else {
answer = arr.splice(Math.floor(arr.length/2), 1); //answer에 splice로 삭제한 값을 저장한다.
}
return answer.join(""); // 리턴값출력 "o"
//주의할 점.. 배열이기 때문에 0부터 시작하므로 5번째 자리는 t가 아닌 o이다...ㅜㅜ
}
console.log(solution(num)); //매개변수
}
{
const num = [5, 9 ,7, 10];
function solution(arr) {
let sm = arr[0], index = 0;
for(i=0; i<arr.length; i++){
if(arr[i] < sm) {
sm = arr[i]; // if문에서 false가 나오므로 if문 식은 무시한다! 즉 index값은 그대로 0!
index = i;
}
}
arr.splice(index, 1); //splice(0, 1)이므로 0번째에서 1번째 자리를 제거. 이때 06번 문제와 달리 새로운 변수에 삭제한 값을 저장하지 않았으므로 리턴값은 해당 값을 제와한 나머지가 출력된다....ㅜㅜ
return arr; // [9,7,0]
}
console.log(solution(num))
}