๊ธฐ๋ก๋ฐฉ

Lv.2 : ๊ธฐ๋Šฅ๊ฐœ๋ฐœ ๋ณธ๋ฌธ

CodingTest/Java

Lv.2 : ๊ธฐ๋Šฅ๊ฐœ๋ฐœ

Soom_1n 2023. 11. 2. 09:19

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ๊ฐ ์ž‘์—…์˜ ๊ฐœ๋ฐœ ์ง„ํ–‰๋„์™€ ํ•˜๋ฃจ๋™์•ˆ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ์ง„๋„์œจ์ด ์ฃผ์–ด์ง„๋‹ค.
  • ์ž‘์—… ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐํฌ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ๋ฐฐํฌ ์‹œ์ ์— ๊ฐœ๋ฐœ ์ง„ํ–‰๋„ 100%๋ผ๋ฉด ํ•จ๊ป˜ ๋ฐฐํฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐฐํฌ๋˜๋Š” ์ž‘์—…์˜ ๊ฐœ์ˆ˜ ๋ฐฐ์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ ๋ฌธ์ œ ํ’€์ด ๐Ÿ”ธ

  • ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ ๋‚ ์งœ๋ฅผ ํ•˜๋ฃจ ์ง„ํ–‰ ๊ฐœ๋ฐœ ์ง„๋„์œจ๊ณผ ๊ณฑํ•ด, ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋๋Š”์ง€ ํ˜น์€ ์–ผ๋งˆ๋‚˜ ๋‚จ์•˜๋Š”์ง€ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋œ ๊ฒƒ๋“ค์€ ์—ฐ์†๋œ ์ˆ˜๋ฅผ ์นด์šดํŠธํ•œ๋‹ค.
  • ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์œผ๋ฉด, ์ด์ „์— ์Œ“์•„๋‘” ์นด์šดํŠธ๋ฅผ ์ •๋‹ต ๋ฐฐ์—ด์— ์ €์žฅํ•ด๋†“๊ณ , ์นด์šดํŠธ๋ฅผ 0์œผ๋กœ ๋Œ๋ฆฐ ๋’ค ๋‚ ์งœ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.util.List;
import java.util.ArrayList;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        List<Integer> list = new ArrayList<>();

        int day = 1;
        int deploy = 0;

        for (int i = 0; i < progresses.length; i++) {
            if (100-progresses[i] <= day * speeds[i]) { // ๋‚จ์€ ํผ์„ผํŠธ๋ฅผ ๋‹ค ์ˆ˜ํ–‰ํ–ˆ์Œ
                deploy++;
            } else {
                if (deploy > 0) { // ์ด์ „์— ์Œ“์•„๋‘”๊ฑฐ ๋ฐฐํฌ
                    list.add(deploy);
                    deploy = 0;
                }

                while(100-progresses[i] > day * speeds[i]) {
                    day++;
                }
                deploy++;
            }
        }

        list.add(deploy);

        int[] answer = new int[list.size()];

        for (int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }

        return answer;
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • day๋Š” ํ˜„์žฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ ๋‚ ์งœ์ด๋‹ค.
  • deploy๋Š” ์—ฐ์†์œผ๋กœ ๊ฐœ๋ฐœ ์™„๋ฃŒ๋œ ์ž‘์—… ์ˆ˜์ด๋‹ค.
  • ์ž‘์—…์„ ์•ž์—์„œ ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋ฉฐ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ํ˜„์žฌ ์ž‘์—…์ด ๊ฐœ๋ฐœ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด deploy์— +1ํ•œ๋‹ค.
    • ํ˜„์žฌ ์ž‘์—…์ด ๋ฏธ์™„๋ฃŒ ๋˜์—ˆ๋‹ค๋ฉด, ์ด์ „ deploy๋ฅผ ์ •๋‹ต ๋ฐฐ์—ด์— ์ €์žฅํ•˜๊ณ , ๋‚จ์€ ๊ฐœ๋ฐœ ๋‚ ์งœ๋ฅผ ์ง„ํ–‰์‹œํ‚จ๋‹ค.
  • ํ•จ๊ป˜ ๋ฐฐํฌ๋˜๋Š” ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ List ํ˜•์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€, ๊ทธ ์›์†Œ ์ˆ˜๋งŒํผ ๋ฐ˜ํ™˜์šฉ int ๋ฐฐ์—ด answer๋ฅผ ๋งŒ๋“ค์–ด ์ €์žฅ ํ›„ ๋ฐ˜ํ™˜ํ–ˆ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๊ฐ„๋‹จํžˆ ํ’€์–ด๋‚ผ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, ๋ฌธ์ œ ์ข…๋ฅ˜๋Š” ์Šคํƒ/ํ๋ผ๊ณ  ๋˜์–ด์žˆ์ง€๋งŒ, ๊ทธ๋ƒฅ deploy ๋ณ€์ˆ˜์— ๋ˆ„์ ํ•ด์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ณด๋ฉด deploy๋Œ€์‹  ํ๋ฅผ ์ด์šฉํ•œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Lv.2 : ํ”„๋กœ์„ธ์Šค  (0) 2023.11.03
BOJ_1235 : ํ•™์ƒ ๋ฒˆํ˜ธ  (0) 2023.11.02
BOJ_1418 : K-์„ธ์ค€์ˆ˜  (0) 2023.11.01
Lv.2 : [1์ฐจ] ์บ์‹œ  (0) 2023.11.01
Lv.2 : ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ  (0) 2023.10.17