ํ๋ก๊ทธ๋๋จธ์ค ์๊ณ ๋ฆฌ์ฆ, SQL (oracle)
ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์
์ ์ํ ์ค์
๋๋ค.
๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100%์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋
๊ธฐ๋ฅ์ด ์์ ์๋ ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๊ฐ๋ฐ๋ ์ ์๊ณ ,
์ด๋ ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ ๋ ํจ๊ป ๋ฐฐํฌ๋ฉ๋๋ค.
๋จผ์ ๋ฐฐํฌ๋์ด์ผ ํ๋ ์์๋๋ก ์์
์ ์ง๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด progresses์
๊ฐ ์์
์ ๊ฐ๋ฐ ์๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด speeds๊ฐ ์ฃผ์ด์ง ๋
๊ฐ ๋ฐฐํฌ๋ง๋ค ๋ช ๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋์ง๋ฅผ return ํ๋๋ก
solution ํจ์๋ฅผ ์์ฑํ์ธ์.
progresses | speeds | return |
---|---|---|
[93, 30, 55] | [1, 30, 5] | [2, 1] |
[95, 90, 99, 99, 80, 99] | [1, 1, 1, 1, 1, 1] | [1, 3, 2] |
function solution(progresses, speeds) {
let proccess = progresses.map((w) => (100 - w));
let done = proccess.map((w, i) => Math.ceil(w / speeds[i]));
// ๋จ์ ๊ฐ๋ฐ์ผ์ ์ด ์๋์ ๋ฑ ๋ง์ถฐ์ ๋จ์ด์ง์ง ์์ ๊ฒฝ์ฐ์๋
// ๋ค์๋ ๊น์ง ์ผํ๋ ์ฌ๋ฆผ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
let result = []
let w_time = done[0], w_count = 1
for (let i = 1; i < done.length; i++){
if(w_time < done[i]){
// ๋ค์ ์ผ์ ์ด ์ด์ ์ผ์ ์ค์ ๊ฐ์ฅ ํฐ ์๋ณด๋ค ํด ๊ฒฝ์ฐ์๋ง ์ผ์ด ๋ง๋ฌด๋ฆฌ ๋จ.
w_time = done[i]
result.push(w_count)
w_count = 1
}else{
//๋ค์ ์ผ์ ์ด ์ด์ ์ผ์ ์ค์ ๊ฐ์ฅ ํฐ ์๋ณด๋ค ์์ ๊ฒฝ์ฐ
w_count += 1 // ์ผ์ด ๋ง๋ฌด๋ฆฌ ๋์์์ ์๋ฏธ
}
}
result.push(w_count) // ๋ง์ง๋ง์ผ๋ก ์ผํ๊ณ ์๋๊ฒ๋ค์ ๋ฃ์ด์ค๋ค.
return result;
}
<FIRST_HALF>
NAME | TYPE | NULLABLE |
---|---|---|
SHIPMENT_ID | INT(N) | FALSE |
FLAVOR | VARCHAR(N) | FALSE |
TOTAL_ORDER | INT(N) | FALSE |
< ICECREAM_INFO >
NAME | TYPE | NULLABLE |
---|---|---|
FLAVOR | VARCHAR(N) | FALSE |
INGREDIENT_TYPE | VARCHAR(N) | FALSE |
์๋ฐ๊ธฐ ๋์ ๊ฐ ์์ด์คํฌ๋ฆผ ์ฑ๋ถ ํ์
๊ณผ ์ฑ๋ถ ํ์
์ ๋ํ ์์ด์คํฌ๋ฆผ์ ์ด์ฃผ๋ฌธ๋์
์ด์ฃผ๋ฌธ๋์ด ์์ ์์๋๋ก ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
์ด๋ ์ด์ฃผ๋ฌธ๋์ ๋ํ๋ด๋ ์ปฌ๋ผ๋ช
์ TOTAL_ORDER๋ก ์ง์ ํด์ฃผ์ธ์.
SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) TOTAL_ORDER
-- ๊ฐ์ INGREDIENT_TYPE
FROM ICECREAM_INFO INNER JOIN FIRST_HALF
ON ICECREAM_INFO.FLAVOR = FIRST_HALF.FLAVOR
-- ICECREAM_INFO.FLAVOR ๊ณผ FIRST_HALF.FLAVOR์ ๊ฐ์ด
-- ๊ฐ์ ๊ฒ๋ผ๋ฆฌ ๋ฌถ์ด์ผ ํ๊ธฐ์ INNER JOIN ์ฌ์ฉ
-- ๊ฐ์ ํํ์ผ๋ก
-- FROM ICECREAM_INFO, FIRST_HALF
-- WHERE ICECREAM_INFO.FLAVOR = FIRST_HALF.FLAVOR
-- ์ฌ์ฉ๊ฐ๋ฅ
GROUP BY INGREDIENT_TYPE;
-- ๊ฐ์ ๊ฐ์ ๊ฐ์ง ๊ฒ ๋ผ๋ฆฌ ๋ฌถ์ด์ค ๋๋ GROUP BY ์ฌ์ฉ
์ ๋ฆฌ๊ฐ ์ ๋ ๊ธ์ด๋ค์. ๋์์ด ๋์ต๋๋ค.