제코베 문제풀이 31~35

김민호·2021년 8월 11일
0
post-thumbnail

🔥 문제31 : 자바스크립트 자료형의 복잡도

다음 배열 내장함수의 시간 복잡도가 O(1)이 아닌 것을 모두 고르시오. 3️⃣ 5️⃣

1) arr[i]
2) arr.push(5)
3) arr.slice()
4) arr.pop()
5) arr.includes(5)

빅오 표기법 Big O Notation ✍🏼

해설 정말 잘 해준 블로그
https://minhanpark.github.io/today-i-learned/javascript-big-o/

🔥 문제32 : 문자열 만들기

취업 준비생인 혜림이는 자기소개서를 쓰고 있습니다. 열심히 자기소개서를 작성하던 도중 혜림이는 자기가 지금까지 단어를 얼마나 적었는지 궁금하게 됩니다.

혜림이를 위해 문자열을 입력받으면 단어의 갯수를 출력하는 프로그램을 작성해 주세요.

입출력

입력 : 안녕하세요. 저는 제주대학교 컴퓨터공학전공 혜림입니다.
출력 : 5
내 풀이 ❌

단어 개수 세기 라고 구글링을 해보면 '이게 맞나...?' 싶을 정도의 복잡한 방법과 코드들이 나옴... 복붙해서 시도해보고도 포기... 그렇게 뒤적뒤적하다가 결국 답안을 보고 오늘도 소라게

답안
const string = prompt('문자열을 입력하세요.').split(' ');

console.log(string.length);

🔥 문제33 : 거꾸로 출력하기

한 줄에 여러개의 숫자가 입력되면, 역순으로 그 숫자들을 하나씩 출력하는 프로그램을 작성하시오.

입출력

입력 : 1 2 3 4 5
출력 : 5 4 3 2 1

입력 : 2 4 6 7 8
출력 : 8 7 6 4 2
내 풀이 ❌
let word = prompt("숫자를 입력하세요")

arr = word.split('')

eraseEmpty = arr.filter(function(ele) { return ele !== " "; });

let revArr = eraseEmpty.reverse()

result = '';

for ( let i = 0; i < revArr.length; i++) {
  let a = parseInt(revArr[i], 10)
  result += a;
}

console.log(result)

// 2 4 6 7 8 입력 시 
   87642 출력

공백이 추가 되지 않았다고 생각했는데 답도 이렇게 나옴.
공백 추가해서 8 7 6 4 2로 출력하려면 어떻게...? ✍🏼

답안과 내 코드를 비교해보며 이쯤에서 한 번 나와주는 소라게

답안
const data = prompt('숫자를 입력하세요.').split(' ').reverse();
const result = '';

for (let i=0; i<data.length; i++){
  result += data[i];
}

console.log(result);
수정

여기서 prompt로 받는 값인 number는 string문자열임

let number = prompt('숫자를 입력하세요').split(' ').reverse();
let result = '';

for ( let i = 0; i < number.length; i++) {
  result += number[i];
}

console.log(result, typeof(result));

// 1 2 3 4 5 입력시
   54321 string 출력

🔥 문제34 : sort 구현하기

민주는 체육부장으로 체육시간이 되면 반 친구들이 제대로 키 순서대로 모였는지를 확인해야 한다. 그런데 요즘 민주는 그것이 너무 번거롭게 느껴져 한 번에 확인하고 싶어한다.

민주를 위해 키가 주어지면 순서대로 제대로 섰는지 확인하는 프로그램을 작성해보자.(키는 공백으로 구분하여 입력됩니다.)

입출력

입력 : 176 156 155 165 166 169
출력 : NO

입력 : 155 156 165 166 169 176
출력 : YES
내 풀이 ⭕️
let height = prompt('숫자를 입력하세요').split(' ')

let arr = [];
for (let i = 0; i < height.length; i++) {
  if (height[i] === height.sort()[i]) {
  arr.push("YES")
} else {
  arr.push("NO")
}
}

if ( arr.includes("NO")) {
  console.log("NO")
} else {
  console.log("YES")
}
답안 ✍🏼
const unsorted = prompt('키를 입력하세요');
let sorted = "";

sorted = unsorted
  .split(" ")
  .sort(function(a, b) {
    return a - b;
  })
  .join(" ");

if (unsorted === sorted) {
  console.log("Yes");
} else {
  console.log("No");
}

🔥 문제35 : Factory 함수 사용하기 ✍🏼

2제곱, 3제곱, 4제곱을 할 수 있는 Factory 함수를 만들려고 합니다.

pass에 코드를 작성하여 two함수를 완성하세요.

function one(n){
    function two(){
        //pass
    }
    return two;
}

const a = one(2);
const b = one(3);
const c = one(4);

console.log(a(10));
console.log(b(10));
console.log(c(10));
profile
개발자로서의 삶은 https://velog.io/@maxminos 에서 기록하고 있습니다 😀

0개의 댓글