DAY 21. 시험 대비

냐하호후·2021년 7월 13일

알고리즘 10번

function insertDash(str) {
let result = str[0]
for(let i = 1; i < str.length ; i++){
  if(str[i] %2 !==0 && str[i-1]%2 !== 0){
   result = result +  '-' 
  }
  result = result + str[i]
 }
 return result
}

//변수 result를 선언한다. 빈문자열''으로 할당한다.
//for문을 만든다. 변수 i를 선언하고 0으로 할당한다. i는 str의길이보다 짧다. i++
//만약 str[i]가 2로 나누어 떨어지지 않고 str[i+1]도 2로 나누어 떨어지지 않는다면(둘다 연속으로 홀수라면)
//str[i]와 str[i-1]이 연속으로 홀수라면 그동안 나온 result들의 뒤에 '-'를 더해준다.
//for문을 돌리다가 str[i]와 str[i-1]이 연속으로 홀수가 아닐 때에는 result에 str[i]를(숫자만을) 더해준다.
//result를 리턴한다

알고리즘 11번

function removeExtremes(arr) {
let shortestLen = 20
let longestLen = 0
let shortestIdx = 0
let longestIdx = 0

for(let i = 0; i < arr.length ; i++){
  if(arr[i].length >= longestLen){
    longestLen = arr[i].length
    longestIdx = i
  }
  if(arr[i].length <= shortestLen){
    shortestLen = arr[i].length
    shortestIdx = i
  }
}
let result = []
for(let i = 0; i < arr.length; i++){
  if(i !== shortestIdx && i !==longestIdx){
    result.push(arr[i])
  }
}
return result
  }

//변수 shortestLen을 선언한다. 20을 할당한다.
//변수 longestLen을 선언한다 0을 할당한다.
//변수 shortestIdx를 선언한다. 0을 할당한다.
//변수 longestIdx를 선언한다. 0을 할당한다.
//for문을 돌린다.i는 0부터 시작한다. arr.length보다 작다. i++
//만약 arr[i]의 길이가 longestLen 보다 크거나 같으면
//longestLen 은 arr[i]의 길이이다.
//longestIdx 는 i이다.

//만약 arr[i]의 길이가 shortestLen 보다 같거나 작다면
//shortestLen은 arr[i]의 길이이다.
//shortestIdx는 i이다.

//변수 result를 선언한다. []빈 객체를 할당한다.
//for문을 돌린다. i는 0을 할당한다. i는 arr의길이보다 작다. i++
//만약 i가 shortestIdx가 아니고 동시에 i가 longestIdx가 아니라면
//result에 arr[i]를 push해준다.
//result를 리턴한다.
profile
DONE is better than PERFECT

0개의 댓글