Jieunny์˜ ๋ธ”๋กœ๊ทธ

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ตฌ๋ช…๋ณดํŠธ ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ตฌ๋ช…๋ณดํŠธ

Jieunny 2023. 2. 17. 12:17

๐Ÿ“Œ  ๋ฌธ์ œ

๋ฌด์ธ๋„์— ๊ฐ‡ํžŒ ์‚ฌ๋žŒ๋“ค์„ ๊ตฌ๋ช…๋ณดํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ์ถœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ช…๋ณดํŠธ๋Š” ์ž‘์•„์„œ ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 2๋ช…์”ฉ ๋ฐ–์— ํƒˆ ์ˆ˜ ์—†๊ณ , ๋ฌด๊ฒŒ ์ œํ•œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ [70kg, 50kg, 80kg, 50kg]์ด๊ณ  ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์ด 100kg์ด๋ผ๋ฉด 2๋ฒˆ์งธ ์‚ฌ๋žŒ๊ณผ 4๋ฒˆ์งธ ์‚ฌ๋žŒ์€ ๊ฐ™์ด ํƒˆ ์ˆ˜ ์žˆ์ง€๋งŒ 1๋ฒˆ์งธ ์‚ฌ๋žŒ๊ณผ 3๋ฒˆ์งธ ์‚ฌ๋žŒ์˜ ๋ฌด๊ฒŒ์˜ ํ•ฉ์€ 150kg์ด๋ฏ€๋กœ ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์—ฌ ๊ฐ™์ด ํƒˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ตฌ๋ช…๋ณดํŠธ๋ฅผ ์ตœ๋Œ€ํ•œ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ๊ตฌ์ถœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด people๊ณผ ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ limit๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์‚ฌ๋žŒ์„ ๊ตฌ์ถœํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ตฌ๋ช…๋ณดํŠธ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • ๋ฌด์ธ๋„์— ๊ฐ‡ํžŒ ์‚ฌ๋žŒ์€ 1๋ช… ์ด์ƒ 50,000๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๊ฐ ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ๋Š” 40kg ์ด์ƒ 240kg ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์€ 40kg ์ด์ƒ 240kg ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๊ตฌ๋ช…๋ณดํŠธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์€ ํ•ญ์ƒ ์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ ์ค‘ ์ตœ๋Œ“๊ฐ’๋ณด๋‹ค ํฌ๊ฒŒ ์ฃผ์–ด์ง€๋ฏ€๋กœ ์‚ฌ๋žŒ๋“ค์„ ๊ตฌ์ถœํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

 

๐Ÿ’ก  ์•„์ด๋””์–ด

์ฒ˜์Œ์—” boat ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ํ•˜๋‚˜์”ฉ ํ‘ธ์‹œํ•ด์ฃผ๋ฉด์„œ boat ์ „์ฒด๋ฅผ ๋Œ๋ฉด์„œ ๋”ํ•ด์ฃผ๊ณ , ๊ทธ ๊ฐ’์ด limit๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋นผ๋Š” ์‹์œผ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค.

์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋‹ˆ ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ด์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ผ๋‹จ people ๋ฌด๊ฒŒ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ๋Š”๋ฐ, ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์ฝ์–ด๋ณด๋‹ˆ ์ตœ๋Œ€ 2๋ช…๋งŒ ํƒˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์จ์žˆ์—ˆ๋‹ค..

์ด๊ฑธ ๋ชป๋ณด๊ณ  ์ƒ๊ฐํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์ƒ๊ฐ์ด ์•ˆ๋‚ฌ๋˜ ๊ฑฐ์˜€๋‹คใ… ใ… ...

2๋ช…์ด ๊ฐ€์žฅ ํšจ์œจ์ ์œผ๋กœ ํƒˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์ œ์ผ ๊ฐ€๋ฒผ์šด ์‚ฌ๋žŒ + ์ œ์ผ ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ์„ ํƒœ์šฐ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋ฐฐ์—ด์˜ ๋งจ ์•ž๊ณผ ๋งจ๋์„ ๋”ํ•ด์„œ limit๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋‘˜๋‹ค ๋‹ค์Œ ์‚ฌ๋žŒ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ , ํฌ๋ฉด ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ๋งŒ ๋‹ค์Œ ์‚ฌ๋žŒ์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

๋งˆ์ง€๋ง‰์— ๋ณดํŠธ์— ํ˜ผ์ž ๋‚จ์€ ๊ฒฝ์šฐ๋„ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.

 

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

function solution(people, limit) {
  var answer = 0;
  let light = 0;
  let heavy = people.length-1;

  people.sort((a, b) => a-b);

  while(light < heavy){
    if(people[light] + people[heavy] <= limit) {
      light++;
      heavy--;
      answer++;
    }
    else {
      heavy--;
      answer++;
    }
  }
  if(light === heavy) answer ++
  return answer;
}