
๐ป Q
ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์ ์ ์ํ ์ค์ ๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100%์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋ ๊ธฐ๋ฅ์ด ์์ ์๋ ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๊ฐ๋ฐ๋ ์ ์๊ณ , ์ด๋ ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ ๋ ํจ๊ป ๋ฐฐํฌ๋ฉ๋๋ค.
๋จผ์ ๋ฐฐํฌ๋์ด์ผ ํ๋ ์์๋๋ก ์์ ์ ์ง๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด progresses์ ๊ฐ ์์ ์ ๊ฐ๋ฐ ์๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด speeds๊ฐ ์ฃผ์ด์ง ๋ ๊ฐ ๋ฐฐํฌ๋ง๋ค ๋ช ๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
๐โ๏ธ ์ ํ ์ฌํญ
• ์์ ์ ๊ฐ์(progresses, speeds๋ฐฐ์ด์ ๊ธธ์ด)๋ 100๊ฐ ์ดํ์ ๋๋ค.
• ์์ ์ง๋๋ 100 ๋ฏธ๋ง์ ์์ฐ์์ ๋๋ค.
• ์์ ์๋๋ 100 ์ดํ์ ์์ฐ์์ ๋๋ค.
• ๋ฐฐํฌ๋ ํ๋ฃจ์ ํ ๋ฒ๋ง ํ ์ ์์ผ๋ฉฐ, ํ๋ฃจ์ ๋์ ์ด๋ฃจ์ด์ง๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
• ์๋ฅผ ๋ค์ด ์ง๋์จ์ด 95%์ธ ์์ ์ ๊ฐ๋ฐ ์๋๊ฐ ํ๋ฃจ์ 4%๋ผ๋ฉด ๋ฐฐํฌ๋ 2์ผ ๋ค์ ์ด๋ฃจ์ด์ง๋๋ค.

์ ์ถ๋ ฅ ์
# 1
์ฒซ ๋ฒ์งธ ๊ธฐ๋ฅ์ 93% ์๋ฃ๋์ด ์๊ณ ํ๋ฃจ์ 1%์ฉ ์์ ์ด ๊ฐ๋ฅํ๋ฏ๋ก 7์ผ๊ฐ ์์ ํ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋ ๋ฒ์งธ ๊ธฐ๋ฅ์ 30%๊ฐ ์๋ฃ๋์ด ์๊ณ ํ๋ฃจ์ 30%์ฉ ์์ ์ด ๊ฐ๋ฅํ๋ฏ๋ก 3์ผ๊ฐ ์์ ํ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
ํ์ง๋ง ์ด์ ์ฒซ ๋ฒ์งธ ๊ธฐ๋ฅ์ด ์์ง ์์ฑ๋ ์ํ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ฒซ ๋ฒ์งธ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋ 7์ผ์งธ ๋ฐฐํฌ๋ฉ๋๋ค.
์ธ ๋ฒ์งธ ๊ธฐ๋ฅ์ 55%๊ฐ ์๋ฃ๋์ด ์๊ณ ํ๋ฃจ์ 5%์ฉ ์์ ์ด ๊ฐ๋ฅํ๋ฏ๋ก 9์ผ๊ฐ ์์ ํ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ๋ผ์ 7์ผ์งธ์ 2๊ฐ์ ๊ธฐ๋ฅ, 9์ผ์งธ์ 1๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ฉ๋๋ค.
# 2
๋ชจ๋ ๊ธฐ๋ฅ์ด ํ๋ฃจ์ 1%์ฉ ์์ ์ด ๊ฐ๋ฅํ๋ฏ๋ก, ์์ ์ด ๋๋๊ธฐ๊น์ง ๋จ์ ์ผ์๋ ๊ฐ๊ฐ 5์ผ, 10์ผ, 1์ผ, 1์ผ, 20์ผ, 1์ผ์ ๋๋ค.
์ด๋ค ๊ธฐ๋ฅ์ด ๋จผ์ ์์ฑ๋์๋๋ผ๋ ์์ ์๋ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์์ฑ๋์ง ์์ผ๋ฉด ๋ฐฐํฌ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ๋ผ์ 5์ผ์งธ์ 1๊ฐ์ ๊ธฐ๋ฅ, 10์ผ์งธ์ 3๊ฐ์ ๊ธฐ๋ฅ, 20์ผ์งธ์ 2๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ฉ๋๋ค.
๐ก A
๊ฐ์ฅ ์์ ์๋ ๊ธฐ๋ฅ์ด ์๋ฃ ๋๊ธฐ ์ ๊น์ง ๋ค์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋์ง ๋ชปํ๋ค๋ ์กฐ๊ฑด์ ์๊ฐํ์๋ FIFO ๊ตฌ์กฐ์ธ ํ๋ฅผ ์ฌ์ฉํ๋๊ฒ ์ ํฉํด ๋ณด์๋ค.
ํ์ง๋ง ์ด๋ป๊ฒ ๊ตฌํํ ๊ฒ์ธ์ง ์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋ค.
์งํ๋ฅ ๊ณผ ์งํ์๋๋ฅผ ๋ฐ๋ก ์ ์ฅํด์ฃผ๊ณ ๋ฐฐํฌ์ผ ์๋ฅผ ๋ด์ ๋ฐฐ์ด ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ํ ์งํ๋ฅ ๊ณผ ์งํ์๋๋ฅผ ๋ํด 100์ ๋์ผ๋ฉด ๋ฐฐํฌ ์๋ฅผ ๋ํ๋ด๋ count๋ฅผ ๋๋ ค์ฃผ๊ณ ๊ฐ์ฅ ์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ธ๋ค.
100์ด ๋์ง ์์ ๊ฒฝ์ฐ ๋ ์ง ์๋ฅผ ๋๋ ค ์ฃผ๊ณ ๋ฐฐํฌ๋๋ ๋ ์ง์ ๊ธฐ๋ฅ ์๋ฅผ ๋ฐํ ํ๋ค.import java.util.Queue; import java.util.LinkedList; import java.util.ArrayList; class Solution { public int[] solution(int[] progresses, int[] speeds) { int[] answer = {}; ArrayList<Integer> days = new ArrayList<>(); Queue<Integer> prog = new LinkedList<>(); Queue<Integer> sp = new LinkedList<>(); for(int i=0;i<progresses.length;i++) prog.add(progresses[i]); for(int i=0;i<speeds.length;i++) sp.add(speeds[i]); int day = 1; while(!prog.isEmpty()){ int count = 0; while(prog.peek() + (sp.peek() * day) < 100) day++; while (!prog.isEmpty() && prog.peek() + (sp.peek() * day) >= 100){ prog.remove(); sp.remove(); count++; } if(count > 0) days.add(count); } answer = new int[days.size()]; for(int i = 0; i < days.size(); i++) answer[i] = days.get(i); return answer; } }
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [3์ฃผ์ฐจ] ํ๋ก๊ทธ๋๋จธ์ค ํ๊ฒ ๋๋ฒ (0) | 2021.08.14 |
|---|---|
| [2์ฃผ์ฐจ] ํ๋ก๊ทธ๋๋จธ์ค ์์ ์ฐพ๊ธฐ (0) | 2021.08.08 |
| [2์ฃผ์ฐจ] ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ์๊ณ ์ฌ (0) | 2021.08.01 |
| [1์ฃผ์ฐจ] ํ๋ก๊ทธ๋๋จธ์ค ์ฃผ์๊ฐ๊ฒฉ (0) | 2021.07.27 |
| [1์ฃผ์ฐจ] ํ๋ก๊ทธ๋๋จธ์ค ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (0) | 2021.07.27 |