ν‹°μŠ€ν† λ¦¬ λ·°

문제

N개의 μ •μˆ˜κ°€ μž…λ ₯되면 당신은 μž…λ ₯된 값을 μ •λ ¬ν•΄μ•Ό ν•œλ‹€.

음의 μ •μˆ˜λŠ” μ•žμͺ½μ— μ–‘μ˜ μ •μˆ˜λŠ” λ’·μͺ½μ— μžˆμ–΄μ•Ό ν•œλ‹€. λ˜ν•œ μ–‘μ˜ μ •μˆ˜μ™€ 음의 μ •μˆ˜μ˜ μˆœμ„œμ—λŠ” 변함이 μ—†μ–΄μ•Ό ν•œλ‹€.

 

λ¬Έμ œν’€μ΄

자료ꡬ쑰λ₯Ό μˆœνšŒν•˜λ‹€κ°€ 인덱슀 μš”μ†Œκ°€ 음의 μ •μˆ˜μΌ κ²½μš°μ— 음의 μ •μˆ˜λ₯Ό μ œμ™Έν•œ κ°€μž₯ μ•žμ˜ 인덱슀 μžλ¦¬κΉŒμ§€ 이전 인덱슀 μš”μ†Œμ™€μˆœμ„œλ₯Ό λ°”κΎΌλ‹€.

 

μ½”λ“œ

function solution(...arr) {
  let answer = arr;
  let front = 0;

  for(let i = 0; i < arr.length; i++) {
    if(arr[i] < 0) { //음의 μ •μˆ˜μΌ 경우
      for(let j = i; j > front; j--) { //κ°€μž₯ μ•žκΉŒμ§€ 이동
        [arr[j - 1], arr[j]] = [arr[j], arr[j - 1]]
      }
      front++; //음의 μ •μˆ˜κ°€ ν•œλ²ˆ κ°€μž₯ μ•žμ— μ™”μœΌλ©΄, κ·Έ λ‹€μŒ 음의 μ •μˆ˜λΆ€ν„°λŠ” 이전 음의 μ •μˆ˜μ˜ 인덱슀λ₯Ό μ œμ™Έν•œ 채 μ•žμœΌλ‘œ μ™€μ•Όν•˜κΈ° λ•Œλ¬Έμ— κ°€μ‚°
    }
  }
  return answer;
}

console.log(solution(1, 2, 3, -3, -2, 5, 6, -6));

function solution(...arr) {
  let answer = arr;

  for(let i = 0; i < arr.length - 1; i++) {
    for(let j = 0; j < arr.length - i - 1; j++){
      if(arr[j] > 0 && arr[j + 1] < 0) { //μ•žμ—κ°€ μ–‘μˆ˜ 뒀에가 음수둜, μ„œλ‘œ 인접할 경우
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]
      }
    }
  }
  return answer;
}

console.log(solution(1, 2, 3, -3, -2, 5, 6, -6));

'μ•Œκ³ λ¦¬μ¦˜ > νƒœκ·Έ 별 풀이' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

Least Recently Used  (0) 2021.07.20
μ‚½μž… μ •λ ¬  (0) 2021.07.19
버블 μ •λ ¬  (0) 2021.07.18
선택 μ •λ ¬  (0) 2021.07.17
[큐]κ΅μœ‘κ³Όμ • 섀계  (0) 2021.07.16
λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
TAG
more
Β«   2025/01   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
κΈ€ 보관함