๐ฉ๐ปโ๐ป Today Learn
๐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด
๋ฌธ์์ด s์ ๋ํ๋๋ ๋ฌธ์๋ฅผ ํฐ๊ฒ๋ถํฐ ์์ ์์ผ๋ก ์ ๋ ฌํด ์๋ก์ด ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
s๋ ์๋ฌธ ๋์๋ฌธ์๋ก๋ง ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๋๋ฌธ์๋ ์๋ฌธ์๋ณด๋ค ์์ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
function solution(s) {
const array = s.split('')
answer = array.sort((a,b) => a>b ? -1 : 1).join('')
return answer
}
๋ช๋ฒ ์ฌ์ฉํด๋ดค๋ split()
, join()
๋ฉ์๋์ sort
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด๋ณด์๋ค!
์๋ก ์๊ธด ๋์ด๊ธฐ๊ตฌ๋ ์ธ๊ธฐ๊ฐ ๋งค์ฐ ๋ง์ ์ค์ด ๋์ด์ง ์์ต๋๋ค. ์ด ๋์ด๊ธฐ๊ตฌ์ ์๋ ์ด์ฉ๋ฃ๋ price์ ์ธ๋ฐ, ๋์ด๊ธฐ๊ตฌ๋ฅผ N ๋ฒ ์งธ ์ด์ฉํ๋ค๋ฉด ์๋ ์ด์ฉ๋ฃ์ N๋ฐฐ๋ฅผ ๋ฐ๊ธฐ๋ก ํ์์ต๋๋ค. ์ฆ, ์ฒ์ ์ด์ฉ๋ฃ๊ฐ 100์ด์๋ค๋ฉด 2๋ฒ์งธ์๋ 200, 3๋ฒ์งธ์๋ 300์ผ๋ก ์๊ธ์ด ์ธ์๋ฉ๋๋ค.
๋์ด๊ธฐ๊ตฌ๋ฅผ count๋ฒ ํ๊ฒ ๋๋ฉด ํ์ฌ ์์ ์ด ๊ฐ์ง๊ณ ์๋ ๊ธ์ก์์ ์ผ๋ง๊ฐ ๋ชจ์๋ผ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
๋จ, ๊ธ์ก์ด ๋ถ์กฑํ์ง ์์ผ๋ฉด 0์ return ํ์ธ์.
function solution(price, money, count) {
let totalMoney = 0;
for (let i=1; i<= count; i++){
totalMoney += price*i
}
const result = money - totalMoney
return result < 0 ? result * -1 : 0
}
๐คฆ๐ปโโ๏ธ ๊ณ ๋ฏผํ ๋ถ๋ถ
๋ฌธ์ 2๋ฒ์ ํ๋ ๋ง์ง๋ง ์ผํญ์ฐ์ฐ์ ๋ถ๋ถ์ ์ฒ์์๋ money > result
๋ก ๋น๊ตํ์๋๋ฐ ์ฝ๋๋ฅผ ์คํ ํ์๋๋ ํต๊ณผํ์์ง๋ง ์ ์ถํ๋๊น ํ
์คํธ4๋ฒ์์ ์คํจ๊ฐ ๋ด์๋ค.
์ด๋ค ๋ถ๋ถ์ด ๋ฌธ์ ์ธ์ง ํค๋งค๋์ค ์คํฐ๋์์ ๋์์ผ๋ก result < 0
์ผ๋ก ๋ฐ๊ฟจ๋๋ ์ฑ๊ณตํ์๋ค.
๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์ด๋ ๋น๊ตํ๋ ๊ฒ์ด ์๋ 0์ ๊ธฐ์ค์ผ๋ก ์์๋ฉด ๊ทธ ์ซ์ ๊ทธ๋๋ก ์์๋ก ๋ฐ๊ฟ์ฃผ๊ณ ์์๋ฉด 0์ return ํด์ฃผ๋๋ก ํ๊ฒ์ด๋ค.
๐ก ์๊ฒ๋ ๋ด์ฉ
๋ธ๋ผ์ฐ์ ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ alert์ฐฝ์ด ์๋๋ผ ์กฐ๊ธ ๋ ์ด์๊ฒ ์ฌ์ฉํ ์ ์๋ ์๋ฆผ์ฐฝ!!
yarn add react-toastify
// ๋๋
npm install --save react-toastify
// import ํด์ฃผ๊ธฐ
import { toast, ToastContainer } from "react-toastify";
import "react-toastify/dist/ReactToastify.css";
// ์๋ฆผ์ฐฝ์ ๋์์ค ๋ถ๋ถ์ ์ ์ฉ
function App() {
const notify = () => toast("๋ด์ฉ์ ์์ ๋กญ๊ฒ ์
๋ ฅํด์ฃผ์ธ์");
return (
<>
<button onClick={notify}>
test
</button>
</>
);
}
// ๋ด๊ฐ ์ ์ฉํ ์์
if (!title) {
toast("์ ๋ชฉ์ ์
๋ ฅํด์ฃผ์ธ์");
return;
}
if (!contents) {
toast("๋ด์ฉ์ ์
๋ ฅํด์ฃผ์ธ์");
return;
}
// ์ ์ฉํด์ฃผ๊ณ ์ถ์ ๋ฒํผ ๋ค์์ ์ถ๊ฐํด์ค์ผ ํ ๋ด์ฉ
<ToastContainer
position="top-right" // ์๋ ์์น ์ง์
autoClose={3000} // ์๋ off ์๊ฐ
hideProgressBar={false} // ์งํ์๊ฐ๋ฐ ์จ๊น
closeOnClick // ํด๋ฆญ์ผ๋ก ์๋ ๋ซ๊ธฐ
rtl={false} // ์๋ฆผ ์ข์ฐ ๋ฐ์
pauseOnFocusLoss // ํ๋ฉด์ ๋ฒ์ด๋๋ฉด ์๋ ์ ์ง
draggable // ๋๋๊ทธ ๊ฐ๋ฅ
pauseOnHover // ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ์๋ ์ ์ง
theme="light"
// limit={1} // ์๋ ๊ฐ์ ์ ํ
/>
์ด๋ ๊ฒ ํด์ฃผ๋ฉด ์ ์ฉ ๋!
๋จ๋๊ฑธ ํ์ธํ ์ ์๋ค! ๋ค์์๋ ์ปค์คํ ํด๋ณด๋ ๋ฐฉ๋ฒ๋ ์์๋ด์ผ๊ฒ ๋ค.
โ๐ป ํ๊ณ
์๋ก์ด๊ฒ์ ๋ฐฐ์ฐ๋๊ฑด ๋ ์ด๋ ต๊ณ ๋ง๋งํ์ง๋ง ์๊ฐ์ด ์กฐ๊ธ ์ง๋ํ ๋ค๋์ ๋ดค์๋ ์ ๊ธฐํ๊ธฐ๋ ํ๋ค.
์ผ๋ฅธ ๋ ๊ณต๋ถํด์ ์ ๋ฆฌํด๋ณด๋๋ก ํด์ผ๊ฒ ๋ค. ๐