๐Ÿ”Žํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฃผ์‹ ๊ฐ€๊ฒฉ

๋ฐ•๋ฏผ์šฐยท2023๋…„ 7์›” 13์ผ
0
post-custom-banner

๋ฌธ์ œ: https://school.programmers.co.kr/learn/courses/30/lessons/42584?language=cpp

์นดํ…Œ๊ณ ๋ฆฌ: ์Šคํƒ/ํ

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๊ณ ๋“์  Kit, https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit


โœ๏ธ ๋‚ด ํ’€์ด

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์‚ฌ์ดํŠธ์—์„œ๋Š” JS ์–ธ์–ด๋ฅผ ์ง€์›ํ•ด์ฃผ์ง€ ์•Š๋Š” ๋ฌธ์ œ์˜€์ง€๋งŒ ๊ทธ๋ƒฅ JS๋กœ ํ’€์–ด๋ณด์•˜๋‹ค. ๋ฌธ์ œ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์Šคํƒ/ํ ์˜€์ง€๋งŒ ๊ทธ๋ƒฅ ๋ฐฐ์—ด๋งŒ ๊ฐ€์ง€๊ณ ๋„ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

  1. prices ๋ฐฐ์—ด์— ๋‹ด๊ธด ๊ฐ ๊ฐ€๊ฒฉ price๋ฅผ mapํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ˆœํšŒํ•˜๋ฉด์„œ, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ return ํ•ด์ค„ ๊ฒƒ์ž„.

  2. ๊ฐ price์™€ ๊ทธ price๋ณด๋‹ค ๋’ค index์— ์žˆ๋Š” price๋“ค์„ for๋ฌธ์„ ๋Œ๋ฉด์„œ ๋น„๊ตํ•œ๋‹ค. ์šฐ์„  ์ดˆ๋ฅผ 1์ดˆ ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ๋งŒ์•ฝ ์ฃผ์‹ ๊ฐ€๊ฒฉ์ด ํ•˜๋ฝํ–ˆ๋‹ค๋ฉด ์ˆœํšŒ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ํ•˜๋ฝํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ณ„์† ์ˆœํšŒ๋ฅผ ๋Œ๋ฉด์„œ ๋น„๊ตํ•˜๋ฉด ๋œ๋‹ค.

    ๋ฐ”๋กœ ๋‹ค์Œ index์—์„œ ๊ฐ€๊ฒฉ์ด ํ•˜๋ฝํ–ˆ๋”๋ผ๋„, 1์ดˆ ๋™์•ˆ ๊ฐ€๊ฒฉ์ด ๋–จ์–ด์ง€์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋ณด๊ธฐ ๋•Œ๋ฌธ์—, for๋ฌธ์—์„œ ์ฃผ์‹ ๊ฐ€๊ฒฉ ํ•˜๋ฝ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ธฐ ์ „์—, ์šฐ์„  1์ดˆ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.


๐Ÿ—’๏ธ ๋‚ด ์ฝ”๋“œ

function solution(prices) {
  const answer = prices.map((price, index, arr) => {
    let second = 0;

    for (let i = index + 1; i < arr.length; i++) {
      second+=1; // ์ผ๋‹จ ๋จผ์ € 1์ดˆ ์ฆ๊ฐ€
      if (price > arr[i]) { // ์ฃผ์‹ ๊ฐ€๊ฒฉ์ด ํ•˜๋ฝํ–ˆ๋‹ค๋ฉด
        break;
      }
    }
    return second;
  });

  return answer;
}

solution([1, 2, 3, 2, 3]);
profile
๊พธ์ค€ํžˆ, ๊นŠ๊ฒŒ
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€