[ํ๋ก๊ทธ๋๋จธ์ค]์ ์ท๊ฐ๊ฒ ํ ์ธ ๋ฐ๊ธฐ ๋ฌธ์ ๋ค.
๋ฌธ์ ์ค๋ช
๋จธ์ฑ์ด๋ค ์ท๊ฐ๊ฒ๋ 10๋ง ์ ์ด์ ์ฌ๋ฉด 5%, 30๋ง ์ ์ด์ ์ฌ๋ฉด 10%, 50๋ง ์ ์ด์ ์ฌ๋ฉด 20%๋ฅผ ํ ์ธํด์ค๋๋ค.
๊ตฌ๋งคํ ์ท์ ๊ฐ๊ฒฉ price๊ฐ ์ฃผ์ด์ง ๋, ์ง๋ถํด์ผ ํ ๊ธ์ก์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
10 โค price โค 1,000,000
price๋ 10์ ๋จ์๋ก(1์ ์๋ฆฌ๊ฐ 0) ์ฃผ์ด์ง๋๋ค.
์์์ ์ดํ๋ฅผ ๋ฒ๋ฆฐ ์ ์๋ฅผ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์
price | result |
---|---|
150,000 | 142,500 |
580,000 | 464,000 |
function solution(price) {
if(price >= 100000) price * 0.05;
else if(price >= 300000) price * 0.1;
else if(price >= 500000) price * 0.2;
return price
}
price์ ๋ฆฌํด ๊ฐ์ด ์ฐ์ฐ๋์ด ์ฌํ ๋น ๋ ๊ฐ์ด ์๋ ๋์ ํ ๊ฐ ๊ทธ๋๋ก ๋์ค๊ธฐ์ ๋ ์ด์์ ํ์ด๊ฐ ์ด๋ ค์ ๋ค๋ฅธ ์ด๋ค์ ํ์ด๋ฅผ ์ฐธ๊ณ ํ๊ฒ ๋๋ค.
๋ฌธ์ ์ 1. if์ ์กฐ๊ฑด์ด ์ฐธ์ด ๋์ ๋ price์ ๊ฐ์ ์ฐ์ฐ๋ง ํ๊ณ ์ฌํ ๋น์ ํ์ง ์์ ํจ์ ์ธ์์ ๋์ ๋ ๊ฐ ๊ทธ๋๋ก ๋ฆฌํด ๋์์.
if(price >= 100000) price *= 0.05;
else if(price >= 300000) price *= 0.1;
else if(price >= 500000) price *= 0.2;
๊ทธ๋ ๊ฒ ์ฌํ ๋น ํ ์ ์๊ฒ *=์ ๋ํด price์ ๊ณ์ฐ์ด ์ ์ฉ๋ ๊ฐ์ ์ฌํ ๋น ํจ.
๋ฌธ์ ์ 2. ํ ์ธ ๋ ํผ์ผํธ๊ฐ ์ ์ฉ๋ ๋๋จธ์ง ๊ฐ์ด ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋์์ผ ํจ.
if(price >= 100000) price *= 0.95;
else if(price >= 300000) price *= 0.9;
else if(price >= 500000) price *= 0.8;
ํ ์ธ๋ ๋๋จธ์ง ๊ฐ์ ๊ณ์ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์์ .
๋ฌธ์ ์ 3. ์๋ฐ์คํฌ๋ฆฝํธ ํน์ฑ์ ์์์ ์ฝ๋๋ฅผ ์ฝ์ด๊ฐ๋ฉฐ ํ์ค ์ฉ ๋ฐ์ดํธ ์ฝ๋๋ก ๋ณํํ๋ ์ธํฐํ๋ฆฌํฐ ์ธ์ด๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ ์ถฉ์กฑ์ ๋ฐ๊ฟ์ค์ผ ํจ.
if(price >= 500000) price *= 0.8;
else if(price >= 300000) price *= 0.9;
else if(price >= 100000) price *= 0.95;
์์ ๊ฐ์ด ์กฐ๊ฑด์ ๊ฐ์ ์ต๋ ๊ฐ๋ถํฐ ์ค์ ํด์ผ ๋ค์ด์จ ๋ฐ์ดํฐ๋ค์ ๊ฐ์ด ์์๋๋ก ์ ์ฉ๋์ด ์ฌํ ๋น์ด ๊ฐ๋ฅํด์ง. ์ต์๊ฐ๋ถํฐ ์กฐ๊ฑด ์ค์ ํ๊ฒ๋๋ฉด ์ฐ์ฐ๋ผ์ผ ํ ๊ฐ๋ค์ด ์ฒซ๋ฒ ์งธ ์กฐ๊ฑด์์ ๋ฒ์ด๋์ง ๋ชป ํจ.
๋ฌธ์ ์ 4. ๋ง์ง๋ง ์ฑ์ ์์ ํต๊ณผํ์ง ๋ชป ํ์. ์ด์ ๋ฅผ ์์๋ณด๋. ๊ณ์ฐ๋ ๋๋จธ์ง ๋ฐ์ดํฐ์ ์์ ๊ฐ์ด ์กด์ฌ. ๊ทธ๋ ๊ธฐ์ ๋ฐ์ดํฐ ์ด๊ณผ์์ ํ์ ํ ์ ์์.
function solution(price) {
if(price >= 500000) price *= 0.8;
else if(price >= 300000) price *= 0.9;
else if(price >= 100000) price *= 0.95;
return Math.floor(price )
}
Math ์ค๋ธ์ ํธ์์ floor ๋ฉ์๋๋ฅผ ํตํด price์ ๋๋จธ์ง ์์๊ฐ๋ค์ ๋ฒ๋ ค ์ํ๋ ๋ถ๋ถ๋ง ๋ฆฌํด ํ ์ ์๊ฒ ํ์ด๋ฅผ ์์ฑํจ.
ํ์ด ์ฝ๋.
const discounts = [
[500000, 20],
[300000, 10],
[100000, 5],
]
const solution = (price) => {
for (const discount of discounts)
if (price >= discount[0])
return Math.floor(price - price * discount[1] / 100)
return price
}
์ด ํ์ด์์ ์ธ์ ๊น์๋ ํ์ด ๋ถ๋ถ์ ๋ค์ค ๋ฐฐ์ด ์ฌ์ฉํ์ฌ ํ์ํ ๋ฐฐ์ด length๋ฅผ ๋ง๋ค๊ณ ๋ฐ๋ณต๋ฌธ์ ํตํด ํ์ํ length๋ฅผ ๋ฝ์ ์กฐ๊ฑด์ ์ถฉ์กฑ์ํจ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ ๊ฒ์ด ์ธ์๊น๊ฒ ๋ณผ ์ ์์๋ค.