๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[codility] JS Lv4-1 ForgRiverOne

by Tamii 2021. 9. 18.
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ 4-1 ForgRiverOne

 

๋‚ดํ’€์ด 1 (72%) ์‹œ๊ฐ„์ดˆ๊ณผ

function solution(X, A) {
  ans = -1;
  let idxArr = new Array(X).fill(0);

  const isContinue = (arr) => {
    const idx = arr.findIndex((ele) => ele === 0);
    if (idx >= 0) return false;
    else return true;
  };

  for (let i = 0; i <= A.length; i++) {
    idxArr[A[i] - 1] = 1;
    if (isContinue(idxArr)) {
      ans = i;
      break;
    }
  }

  return ans;
}

1) Xํฌ๊ธฐ์˜ 0์œผ๋กœ ์ฑ„์›Œ์ง„ ๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑ

2) A ๋ฐฐ์—ด์„ ๋Œ๋ฉฐ ํ•ด๋‹น idx-1 (0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ) ๋ฅผ ์ฑ„์›€

3) ์ฑ„์šธ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๋ฐฐ์—ด์ด ์—ฐ์†๋˜์—ˆ๋Š”์ง€ ํ™•์ธ (isContinue)

 

 

๋‚ด ํ’€์ด 2( 82%) ์‹œ๊ฐ„ ์ดˆ๊ณผ

function solution(X, A) {
  ans = -1;
  let idxArr = new Array(X).fill(0);

  const isContinue = (arr) => {
    let ans = true
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] === 0) {
          ans = false
          break
      }
    }
    return ans
  };

  for (let i = 0; i <= A.length; i++) {
    idxArr[A[i] - 1] = 1;
    if (isContinue(idxArr)) {
      ans = i;
      break;
    }
  }

  return ans;
}

isContinue ๋ถ€๋ถ„์„ ์ธ๋ฑ์Šค๊ฐ€ 0์ธ๊ฑธ ์ฐพ์œผ๋ฉด ๋ฐ”๋กœ break ํ•˜๋„๋ก ๋ณ€๊ฒฝํ–ˆ์ง€๋งŒ

์‹œ๊ฐ„์ดˆ๊ณผ ํ…Œ์ผ€๋Š” 2๊ฐœ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

 

 

๋‹ค๋ฅธ ํ’€์ด (100%)

function solution(X, A) {
    idxArr = new Array(A.length).fill(0)
    idxSum = 0
    for (let i=0; i<A.length ; i++){
        if (idxArr[A[i]-1] === 0){
            idxArr[A[i]-1] =1
            idxSum +=1
        }
        if (idxSum === X) return i
    }
    return -1
}

1 )A๋ฅผ ๋Œ๋ฉด์„œ idxArr์˜ ์ธ๋ฑ์Šค A ๊ฐ’์ด 0์ด๋ฉด  1๋กœ ์ฑ„์šฐ๊ณ  ํ•ฉ์‚ฐ์„ํ•˜๋‹ค.

2) ํ•ฉ์‚ฐ์ด X์™€ ๊ฐ™์•„์ง€๋ฉด X๋งŒํผ์˜ ๋ฐฐ์—ด์ด ๋‹ค ์ฑ„์›Œ์ง„๊ฒƒ์ด๋ฏ€๋กœ ๊ทธ๋•Œ์˜ i (์ดˆ)๋ฅผ return

 

 

๐Ÿฅณ  ์˜ค๋Š˜ ๋ฐฐ์šด ์ 

์‹œ๊ฐ„์„ ๊ฐ์†Œ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์กด์˜ ๋ฐฉ๋ฒ•์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šธ ์•„์ด๋””์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค .

 

 

 

 

๋Œ“๊ธ€