๐Ÿ“Œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„ :: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ2 :: ์Šคํƒ&ํ - ๋‹ค๋ฆฌ๋ฅผ์ง€๋‚˜๋Š”ํŠธ๋Ÿญ๐Ÿ‘€

Dev-Oยท2022๋…„ 2์›” 9์ผ
0

CodingTest

๋ชฉ๋ก ๋ณด๊ธฐ
10/18

๋ฌธ์ œ


ํ’€์ด

์–ด๋ ต์ง„ ์•Š์•˜์ง€๋งŒ, ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๋Š” ๊ณผ์ •์ด ์ข€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์ œ์•ฝ์กฐ๊ฑด๋“ค์„ ํ’€์–ด๊ฐ€๋Š” ๊ณผ์ •์ด ์œ ์˜๋ฏธ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ฝ์กฐ๊ฑด๊ณผ ๋ช‡๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ, ์นจ์ฐฉํ•˜๊ฒŒ ํ•˜๋‚˜์”ฉ ์ œ์•ฝ์กฐ๊ฑด์„ ๊ฑธ์–ด๊ฐ€๋ฉด์„œ ํ’€๋ฉด ๋ฌธ์ œ ์ ‘๊ทผ์ด ์‰ฌ์› ์Šต๋‹ˆ๋‹ค.

  1. ๋‹ค๋ฆฌ๊ฐ€ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š” ํ•˜์ค‘์„ ์ƒ๊ฐํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋ ค๋ฉด ๋‹ค๋ฆฌ์˜ ๊ธธ์ด๋งŒํผ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.(ex.๋‹ค๋ฆฌ๊ธธ์ด : 2 == 2์ดˆ)
  3. ๋‹ค๋ฆฌ๊ธธ์ด๋ณด๋‹ค ํŠธ๋Ÿญ์ด ๋งŽ์ด ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  4. ํŠธ๋Ÿญ์ด ๋‹ค๋ฆฌ์—์„œ ๋น ์ง€๋Š” ๋™์‹œ์— ์ƒˆ๋กœ์šด๊ฒƒ์ด ๋“ค์–ด์™€์•ผํ•ฉ๋‹ˆ๋‹ค.

    ํ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค.
    ๋‹ค๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„ ํŠธ๋Ÿญ๊ณผ ๋“ค์–ด์˜ฌ ํŠธ๋Ÿญ์˜ ํ•ฉ์ด ๋‹ค๋ฆฌํ•˜์ค‘๋ณด๋‹ค ์ž‘์œผ๋ฉด ํ์— ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
    ๋‹ค๋ฆฌํ•˜์ค‘๋ณด๋‹ค ํŠธ๋Ÿญ๋“ค์˜ ๋ฌด๊ฒŒ๊ฐ€ ํฌ๋‹ค๋ฉด ํ์— 0์„ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  1์ดˆ์”ฉ ์˜ฌ๋ ค์ค๋‹ˆ๋‹ค.
    ํ๊ฐ€ ๋‹ค๋ฆฌ๊ธธ์ด์™€ ๊ฐ™์•„์ง€๋ฉด ๋‹ค๋ฆฌ๋์— ๋„์ฐฉํ•œ๊ฒƒ์ด๋‹ˆ ๋‹ค๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„ ํŠธ๋Ÿญ ์ฆ‰, ํ์—์„œ poll()์„ ํ•ด์ค๋‹ˆ๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ ๋‹ค๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„ ์ด ํŠธ๋Ÿญ์˜ ๋ฌด๊ฒŒ์—์„œ ๋นผ์ค๋‹ˆ๋‹ค.
    ๋ฐ˜๋ณตํ•˜๋ฉด ๋งˆ์ง€๋ง‰ ํŠธ๋Ÿญ์ด ๋“ค์–ด์™”์„๋•Œ ๋ฐ˜๋ณต๋ฌธ์ด ๋๋‚ฉ๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ +๋‹ค๋ฆฌ๊ธธ์ด๋ฅผ ํ•ด์ฃผ๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐ์ž…๋‹ˆ๋‹ค.

      for(int i = 0 ; i < truck_weights.length ;) { 
                  if(bridge.size() < bridge_length) {
                      if(weight >= sum + truck_weights[i]) {// ๋‹ค๋ฆฌํ•˜์ค‘ > ํŠธ๋Ÿญ ์ด ๋ฌด๊ฒŒ + ๋“ค์–ด์˜ฌํŠธ๋Ÿญ
                          bridge.add(truck_weights[i]); //ํ์— ํŠธ๋Ÿญ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
                          sum += truck_weights[i];//ํŠธ๋Ÿญ์ด๋ฌด๊ฒŒ์— ํŠธ๋Ÿญ์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค.
                          i++; //๋‹ค์Œ ํŠธ๋Ÿญ
                      }else {
                          bridge.add(0);//๋‹ค๋ฆฌํ•˜์ค‘์ด ๋”์ž‘์œผ๋ฉด 0์„ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. 
                      }
                      answer++;//์–ด๋–ค๊ฒฝ์šฐ์—๋„ ํ•œํšŒ ๋‹น 1์ดˆ์”ฉ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
                  }else sum -= bridge.poll(); 	
                  //ํŠธ๋Ÿญ์ด ๋น ์ง๊ณผ ๋™์‹œ์— ๋“ค์–ด์™€์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น ์ง€๋Š” ์ž‘์—…์€ ์ดˆ๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 
              }
              return answer+bridge_length;//๋งˆ์ง€๋ง‰ ํŠธ๋Ÿญ์ด ๋“ค์–ด์˜ค๋ฉด ๋ฐ˜๋ณต๋ฌธ์ด ๋๋‚ฉ๋‹ˆ๋‹ค. 
              //๋”ฐ๋ผ์„œ ๋‹ค๋ฆฌ๊ธธ์ด๋งŒํผ ์†Œ์š”์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
          }
profile
Being Outstanding needs Understanding๐Ÿš€

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