11/21
๐ ํ ์ผ
- ๋ฐฑ์ค 5๋ฌธ์
- ์๊ฐ์ ๊ฐ ์ฝ๋๋ฆฌ๋ทฐ
โ ํ ์ผ
- ๋ฐฑ์ค 5๋ฌธ์
๋ธ๋ก ์ฆ 4 ๋ง์ง๋ง 4๋ฌธ์ ๋ฅผ ํ์๋ค
๋ค๋ฅธ ๊ฑด ๊ด์ฐฎ์๋๋ฐ 25965๋ฒ ๋ฏธ์ ๋๋ค์ด์ ๋ฌธ์ ๊ฐ ์ง์ง ๋๋ฌด๋๋ฌด ์ด๋ ค์ ๋ค
๊ทธ๋์ ๊ฒฐ๊ตญ ํ์ง ๋ชปํ๊ณ ๋ค์๋ ์คํฐ๋ ํ์ํํ ๋ฌผ์ด๋ด์ ํด๊ฒฐํ๋ค
ํ์๋ถ๋ ํด๊ฒฐํ์ง ๋ชปํ๋ค๊ฐ ํด๊ฒฐํ ๋ฌธ์ ๋ค
๊ตฌ๊ธ๋งํ ๋ ์ด๋ค ๋ถ์ด ์ด ๋ฌธ์ ๋ ๋ธ๋ก ์ฆ 4๊ฐ ์๋ ๊ฒ ๊ฐ๋ค๊ณ ํ์ จ๋๋ฐ ๊ฒฉํ๊ฒ ๋์ํ๋ค
๊ทผ๋ฐ ๋ช ์ผ ํ ๋ค์ ๋ค์ด๊ฐ๋ณด๋ ๋ธ๋ก ์ฆ 4 ์์ ์์ด์ก๋ค ๐
ํด๋น ๋ฌธ์ ๋ ์ ๋ ฅ๋ฐ์ ๊ฒ์ ์ด๋ป๊ฒ ๊ตฌ๋ถํ ์ง๊ฐ ๊ด๊ฑด์ธ๋ฐ
const filePath = process.platform === "linux" ? 0 : "example.txt";
let input = require("fs")
.readFileSync(filePath)
.toString()
.trim()
.split("\n")
.map((el) => el.trim());
let ans = [];
for (let i = 1; i < input.length; i++) {
if (input[i].length === 1) {
//if (input[i].split(' ').length === 1) { --> ์ด๋ ๊ฒ ์์ ํด์ฃผ๋ฉด ์ ๋ต
let M = Number(input[i]);
let sum = 0n;
let [k, d, a] = input[i + M + 1].split(" ").map(BigInt);
for (let j = 1; j <= M; j++) {
let [K, D, A] = input[i + j].split(" ").map(BigInt);
if (K * k + A * a - D * d > 0n) sum += K * k + A * a - D * d;
}
ans.push(sum);
}
}
console.log(ans.join("\n"));
์ด๋ ๊ฒ ํธ๋ ๊ฒ์ด ๋ต์ด์๋ค...
ํ์๋ถ์ ๊ธธ์ด๊ฐ 1์ผ ๋๋ก ๊ตฌ๋ถํด์คฌ๋ค
- ์๊ฐ์ ๊ฐ ์ฝ๋๋ฆฌ๋ทฐ
์ฒซ๋ฒ์งธ ์๊ฐ์๋ถ!
1. index.html
(1) 56๋ฒ
๋ค๋ฅธ ์ด์ ๊ฐ ์์ผ์๋ค๋ฉด class ๋ก main ๊ณผ section ์ ์ง์ ํ๋ ๊ฒ ๋ณด๋ค main, section ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์๋ฉํฑํ ๊ฒ ๊ฐ์ต๋๋ค
(2) 99๋ฒ
์ 57๋ฒ ์ค์์ search-container ๋ผ๊ณ ์ฐ์ จ๋ฏ์ด detail-container ๋ผ๊ณ ๋ช ์ํด์ฃผ๋ ๊ฒ์ด ๋ ํต์ผ์ฑ์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค
2. detail.js
(1) 9, 10๋ฒ
๋ ์ค ๋ฐ์ ์์ด์ ๋ง์๋๋ฆฌ๊ธฐ๊ฐ ์กฐ๊ธ ๋ฏผ๋งํ์ง๋ง console.log ์ ์ฃผ์์ ๊ฐ๋ฅํ๋ฉด ์ง์ฐ๊ณ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์๊ณ ์์ต๋๋ค
3. getDetail.js
(1) 3๋ฒ
Promise ์์ฑ์์ resolve, reject ๋ ์ฌ์ฉํ์ จ๋ค์ ํน์ ์ด๋ฒ์ ๊ฐ์ฌ๋์ ํตํด ๋ฐฐ์ด ๊ฒ์ ํ์ฉํ์ จ๋ค๋ฉด ๋ฐฐ์ด ๊ฒ์ ๋ชจ๋ ํ์ฉํด๋ณด๋ ์์ธ ๋ฉ์๊ณ ๋ณธ ๋ฐ์์ผ ํ ์ ์ธ ๊ฒ ๊ฐ์์
4. renderDetail.js
(1) 29๋ฒ
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ฐฑํฑ์ ์ฌ์ฉํ์ จ์ผ๋ `/${details.Ratings[i].Source}.png` ์ด๋ ๊ฒ ๋ณ๊ฒฝํด๋ ๋ ๊ฒ ๊ฐ์ต๋๋ค
5. css
๊ฐ๋ ์ํ ์ ๋ชฉ์ด ๋ง์ด ๊ธธ๋ฉด ์ํ ๋ชฉ๋ก์ ๋ณด์ฌ์ค ๋ ๊ธธ์ด์๋ ์ํฅ์ ์ค์ ์ผ์ ํ์ง ์์ ๋ณด์ ๋๋ค ํน์ ์ค๋ก๊ฐ ์๋๋ฉด ๋์ค ์ ๋ ์ด์ ๋์์ ๋ ๋ง์ค์ํ๋ฅผ ํด์ฃผ๋ ๊ฒ์ด ์ด๋จ๊น์?
`
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
`
**๋ณ๊ฒฝ ํ**
๋๋ฒ์งธ ์๊ฐ์๋ถ!
1. css
- ๋ชจ๋ํ๋ฅผ ํ์ จ๋ค์ ์ ๋ ๋งค๋ฒ ์ฒ์๋ถํฐ ํ์ง ์์์ ๋์ค ๊ฐ๋ฉด ์ฝ๋ ์ ๋ฆฌ๋ ๋์ถฉํ๊ณค ํ๋๋ฐ ๊น๋ํ ๊ฒ ๊ฐ๋ค์
2. header.css
(1) 20๋ฒ
max-width ์ min-width ๋ฅผ ์ ํด์ฃผ์ ์ด์ ๊ฐ ์์๊น์?
ํน์ ๋์ค์ ๋ฐ์ํ์ ์ถ๊ฐํ์ ๋ค๋ฉด max-width ์ min-width ๋ฅผ ๋ ๋ค ์ง์ ํ๋ฉด ํ๋ฉด์ ์ค์์ ๋ ํ๋ฉด ๋ฐ์ผ๋ก ๋๊ฐ๋ ํ์์ด ์์ด์ width: 1000px ๋ง ์ ์ฉํด๋ ๊ฐ๋จํ๊ฒ ๊ตฌํ์ด ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ ๋ง์๋๋ ค์
3. main.css
(1) 3๋ฒ
ํน์ info.css ์ header.css ์ ๊ธฐ๋ณธ์ค์ ์ด ๋์ผํด๋ณด์ด๋๋ฐ ๋ง์๊น์? ์ค๋ณต๋๋ ์ฝ๋๋ ๋ชจ๋ํ๋ฅผ ํ๋ ๊ฒ์ด ์ข ๋ ๋์ ๊ฒ ๊ฐ์ต๋๋ค
(2) 181๋ฒ
์ํ ์ ๋ชฉ์ด ๋ง์ด ๊ธธ๋ฉด ์ํ ๋ชฉ๋ก์ ๋ณด์ฌ์ค ๋ ๊ธธ์ด์๋ ์ํฅ์ ์ค์ ์ผ์ ํ์ง ์์ ๋ณด์ ๋๋ค ํน์ ์ค๋ก๊ฐ ์๋๋ฉด ๋์ค ์ ๋ ์ด์ ๋์์ ๋ ๋ง์ค์ํ๋ฅผ ํด์ฃผ๋ ๊ฒ์ด ์ด๋จ๊น์?
์ด๋ ๊ฒ ์ ์ฉํ์๋ฉด ์๋ง position: absolute ๋๋ฌธ์ ๋ฐ์ ๊ธ์จ๊ฐ ๋ ๋ณด์ผํ ๋ฐ ์ ๋ ๊ทธ ๋ถ๋ถ์ ๋ฐ๋ก txt ๊ตฌ์ญ์ผ๋ก ๊ฐ์ธ์ ๊ตฌ์ญ์ position: absolute ๋ฅผ ์ ์ฉํด์ฃผ์์ผ๋ ํน์ ๋ง์ค์ํ๋ฅผ ์ ์ฉํ๋ค๋ฉด ์ฐธ๊ณ ํด์ฃผ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค
`
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
`
**๋ณ๊ฒฝ ํ**
11/22
๐ ํ ์ผ
- ๋ฐฑ์ค 5๋ฌธ์
- ๋ฆฌ์กํธ ๊ฐ์ create-react-app ํํธ ์๊ฐ
โ ํ ์ผ
- ๋ฐฑ์ค 5๋ฌธ์
๋๋์ด ๋ธ๋ก ์ฆ 3 ์ ์ง์ ํ๋ค ๋ธ๋ก ์ฆ 3 ์ ๋จผ์ ํ์ด๋ณธ ์คํฐ๋ ํ์๋ถ์ด ์ด๋ ต๋ค๊ณ ๋ง์ ํด์ฃผ์ ์ ์กฐ๊ธ ๋ฌด์์ ๋ค
์๋๋ ๋ค๋ฅผ๊น ๋ฌธ์ ์์ฒด๋ฅผ ์ดํดํ๊ธฐ๊ฐ ์ด๋ ค์ด ๋ฌธ์ ๊ฐ ๋์๋ค
1085 ๋ฒ ์ง์ฌ๊ฐํ์์ ํ์ถ ๋ฌธ์ ๋ ๊ทธ๋ ค์ ์ดํดํด๋ดค๋๋ฐ ์ฒ์์ ์ด๋ ต๊ฒ ํ๋ค๊ฐ ๊ท์น์ ๋ฐ๊ฒฌํด์ ํ๊ฒ ๋์๋ค ๋ด ์์น๊ฐ ๊ณง ์ง์ฌ๊ฐํ์ ๊ฒฝ๊ณ์ ๊น์ง ๊ฐ๋ ๊ธธ์ด๊ณ , ๊ทธ ๋ฐ๋ ๊ฒฝ๊ณ์ ๊น์ง ๊ฐ๋ ๊ธธ์ด๊ฐ ์ง์ฌ๊ฐํ์ w ์ y ๋ฅผ ๋ด ์์น์์ ๋นผ์ฃผ๋ ๊ฒ์ด์๋ค
1247 ๋ฒ ๋ถํธ ๋ฌธ์ ๋ ์ ๋ ฅ ์ซ์๋ค์ ์ดํดํ์ง ๋ชปํด์ ์ผ๋จ ํ์๋ถ ์ฝ๋๋ฅผ ์ฐพ์ ๋ณด๊ธด ํ๋๋ฐ ๊ทธ๋๋ ์ดํด๊ฐ ์ ๋์ง ์์๋ค ์ ๋ ํผ ๋ฏธ์ ๋๋ค์ด์ ๋ฌธ์ ์ ์ ์ฌํ๊ฒ ์ ๋ ฅ์ ๋ฐ์ ๊ฒ์ ๊ตฌ๋ถํ๋ ๊ฒ ๊ด๊ฑด์ธ ๊ฒ ๊ฐ์๋ฐ ์ ๋ ฅ ์ซ์๋ค์ด ์ด๋ค ์๋ฏธ์ธ์ง๊ทธ๋์ ํด๋น ๋ฌธ์ ๋ฅผ ํผ ํ์ํํ ๋ฌผ์ด๋ดค๋ค
- ๋ฆฌ์กํธ ๊ฐ์ create-react-app ํํธ ์๊ฐ
๋ค๋ฅธ ๊ฑด ๋ค ์๊ณ ์์ด์ ํน๋ณํ ๊ฑด ์์๊ณ css module ์ฆ post css ๋ฅผ ๋ค์ ๋ฐฐ์ ๋ค
์์งํ css module ์ด๋ผ๊ณ ๋ง ์๊ณ ์์์ง ๊ฑฐ์ ์์ css ๋ scss ๋ฅผ ์จ์ ๋ด๊ฐ ์ด์ ๊ป ๋ฐฐ์ด ๊ฒ css module ์ด๊ณ post css ์ธ์ง๋ ๋ชฐ๋๋ค
ํ์๋ถ์ด post css ๋ผ๊ณ ํ์๊ธธ๋ ๋ญ์ง ๋ชฐ๋๋๋ฐ ๋ฌผ์ด๋ดค๋๋ ๋ด๊ฐ ๋ฐฐ์ด ๊ฑฐ์๋๋ผ^^..
11/23
๐ ํ ์ผ
- ์๊ณ ๋ฆฌ์ฆ : ์ด๋ถ ๊ฒ์ ํํธ ๋ณต์ต
- ์๊ณ ๋ฆฌ์ฆ : ๊ทธ๋ฆฌ๋ ํํธ ๋ณต์ต
โ ํ ์ผ
- ์๊ณ ๋ฆฌ์ฆ : ์ด๋ถ ๊ฒ์ ํํธ ๋ณต์ต
๋ฐ์ดํฐ ์ผํฐ ๋ฌธ์ ๋ ์ ๋ฐ ์ด์์ ์ปดํจํฐ๊ฐ ์ฐจ๊ฐ์ด ๊ณต๊ธฐ๋ฅผ ๋ฐ๊ธฐ ์ํด ๋๊ฐ๊ธฐ๋ฅผ ์ต์ ๋ช ๋ถ ๊ฐ๋ํด์ผ ํ๋์ง ๋ฐํํด์ผ ํ๋ ๋ฌธ์ ์๋ค
function solution(borad) {
let answer = 0;
let left = 1,
right = 0,
sum = 0;
borad.forEach((el) => {
right = Math.max(right, Math.max(...el)); // Math.max(...el) ๊ฐ ๋ฐฐ์ด์์ ๋น๊ตํ ๊ฒ์์ ๋์จ ์ต๋ ๊ฐ๊ณผ ๋ค์ ๋ฐฐ์ด์์ ๋์จ ์ต๋๊ฐ์ ๊ณ์ํด์ ๋น๊ตํจ
sum += el.reduce((a, b) => a + b, 0); // ๊ฐ ๋ฐฐ์ด์ ๋ํด์ค ๊ฐ์ sum ์ ๋์ ํด์ ์ ์ฒด ๊ฐ์ ํฉ์ ๊ตฌํจ
});
console.log(right);
// count function : mid ๊น์ง ๋๋ฐฉ๊ธฐ๋ฅผ ํผ ๊ฒ์ ์ปดํจํฐ๋ค์ ๋ค ๋ํด์ค์ผ ํจ
function count(mid) {
let cnt = 0;
borad.forEach((e) => {
for (x of e) {
if (x >= mid)
cnt += mid; // x = 9, mid = 5 ๋ฉด mid ๊ฐ ๋ ์์ผ๋ mid ๊น์ง ๋ํ๊ณ
else cnt += x; // ๋ฐ๋๋ก x = 3, mid = 5 ๋ฉด x ๊ฐ ๋ ์์ผ๋ x ๊น์ง๋ง ๋ํด์ค
}
});
return cnt;
}
// ์ด๋ถ ๊ฒ์
while (left <= right) {
mid = parseInt(left + right / 2); // mid ๋ถ๊น์ง ๋๋ฐฉ๊ธฐ๋ฅผ ํผ๋ค
if (count(mid) >= sum / 2) {
// ์ปดํจํฐ๋ค์ ๋ฐ ๋๋ ์ ๊ทธ๊ฒ๋ณด๋ค ํฌ๋ฉด ์ ๋ต
answer = mid;
right = mid - 1; // ๊ทธ๋ฌ๋ ๋ ๋์ ๊ฐ์ ์ฐพ์์ค์ผ ํ๋ ๋ ์ต์๊ฐ์ ์ฐพ๊ธฐ ์ํด right ๋ฅผ mid ๋ณด๋ค ์๊ฒ
} else left = mid + 1; // ์๋๋ผ๋ฉด ๋ ํฐ ๊ฐ์ ์ฐพ์์ค์ผ ํ๋ ์ ๋ต์ ์ฐพ๊ธฐ ์ํด left ๋ฅผ mid ๋ณด๋ค ํฌ๊ฒ
}
return answer;
}
console.log(
solution([
[15, 3, 1, 5, 6],
[3, 0, 7, 4, 3],
[8, 5, 7, 5, 6],
[9, 6, 1, 5, 5],
[5, 5, 8, 5, 1],
])
);
๋ง๊ตฌ๊ฐ ์ ํ๊ธฐ ๋ฌธ์ ๋ ์ต๋ ์ขํ๊น์ง์๋ค๊ฐ c ๊ฐ์ ๋ง์ ๋ฐฐ์นํด์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ง์ ์ต๋ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์๋ค
function solution(nums, c) {
let answer = 0;
nums.sort((a, b) => a - b);
let left = 1,
right = Math.max(...nums);
function count(mid) {
let cnt = 1; // ์ ์ผ ์ผ์ชฝ์ ๋ง ํ๋ ๋ฐฐ์น
let endPoint = nums[0]; // ์ต๊ทผ์ ๋ฃ์ ๋ง์ ์ขํ
for (let i = 1; i < nums.length; i++) {
//
if (nums[i] - endPoint >= mid) {
cnt++;
endPoint = nums[i];
}
}
return cnt;
}
while (left <= right) {
let mid = parseInt((right + left) / 2);
if (count(mid) >= c) {
answer = mid;
left = mid + 1;
} else right = mid - 1;
}
return answer;
}
console.log(solution([1, 2, 8, 4, 9], 3)); // 3
console.log(solution([5, 9, 10, 12, 14, 15], 3)); // 5
- ์๊ณ ๋ฆฌ์ฆ : ๊ทธ๋ฆฌ๋ ํํธ ๋ณต์ต
์ฌ์ค ๊ทธ๋ฆฌ๋๊ฐ ๋ญ์ง ์ดํดํ๊ณ ํผ ๊ฒ์ด ์๋๋ผ์ ๋์ถฉ sort ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋๋๊ตฌ๋ ํ๋ฉด์ ํ์๋ค
์ ๊ธ๊ธฐ ๋ฌธ์ ๋ ์์ง์ ์์ ์ ๊ณผ ์ ์ฌ์ด๋ฅผ ์๋ ์ ๋ค์ ์ด ๊ธธ์ด๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์๋ค
์์ ์ขํ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ, ํ ์ ์์ s ๋ ์ฒซ ์ ์ด๊ณ e ๋ ๋ ์ , ๊ทธ ๋ค์ ์ ์ด e ๋ผ๋ ๊ฐ์ด ๋ค์ ์ ์ ์์์ ๋ณด๋ค ์์์ง ํฐ์ง ํ๋ณํ๊ณ , ์๋ค๋ฉด e ๋ฅผ ๋ค์์ ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝ, ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ณตํด์ ํ๋ณํ์ฌ ํฌ๋ค๋ฉด ๋์ด์ง ๊ฒ์ ์๋ฏธํ๋ answer ์ e-s ๋ฅผ ๋์ ํด์ฃผ๊ณ ๋ง์ง๋ง ์ ์ e-s๋ฅผ answer ์ ๋์ ํ๋ค
for ๋ฌธ์ ๋๋ฒ์งธ ์ ๋ถํฐ ๋๊ณ ๋ง์ฝ ์์์ ์ด e ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๊ณ ๋์ ์ด e ๋ณด๋ค ํด ๋ e ๋ nums ๋ nums[i][1]
์ฌ๊ธฐ์ ์ ์์ ๋ค๋ฅธ ์ ์ด ํฌํจ๋์ด ์์ ๋๋ ์๋ ๊ฑธ๋ก ์ณ์ผ ํ๋ค
ํ์์ค ๋ฐฐ์ ๋ฌธ์ ๋ ๊ทธ๋ฆฌ๋๋ ๊ณง ํ์์ค ๋ฐฐ์ ์ด๋ผ๊ณ ํ ์ ์์ ์ ๋๋ก ์ ๋ช ํ๋ค๊ณ ํ๋ค
ํ์์ค์ ํ๋์ธ๋ฐ ํ์๊ฐ ๊ฒน์น์ง ์๊ณ ํ์๋ฅผ ํ ์ ์๋ ์ต๋ ํ์์ ์๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค
๊ทธ๋ฆฌ๋๋ ๋ฐ๋ก๋ฅผ ์ฐพ์์ผ ํ๋๋ฐ ์ด ๋ฌธ์ ์์๋ ๊ธด ํ์๊ฐ ์์ ์ ์๊ณ ์์ํ ํ์๊ฐ ์์ ์ ์๋ค ๊ทธ๋ด ๋ ๊ธด ํ์๊ฐ ์์ ์๊ฐ์ด ๋งจ ์์ด๋ผ๊ณ ๊ทธ๊ฑธ ํ ์ ์๋ ํ์๋ก ๋ฐํํด๋ฒ๋ฆฌ๋ฉด ํ์๋ ํ๋๋ฐ์ ํ์ง ๋ชปํ๋ค๋ ๊ฒ์ด ๋ฐ๋ก์ด๋ค
๊ทธ๋์ ์์์๊ฐ์ผ๋ก ์ ๋ ฌํ์ง ์๊ณ ๋๋๋ ์๊ฐ์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , et ๋ ํ์๊ฐ ๋๋๋ ์๊ฐ, et ๋ณด๋ค ํ์๊ฐ ์์ํ๋ ์๊ฐ์ด ๊ฐ๊ฑฐ๋ ํฌ๋ฉด ํ์๋ฅผ ํ ์ ์์ผ๋ et ๋ฅผ ํด๋นํ๋ ํ์์ ๋๋๋ ์๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๊ณ answer ๋ฅผ ์ฆ๊ฐ์ํจ ๊ฒ์ ๋ฐ๋ณตํ์ฌ ๋ฐํํ๋ค
11/24
๐ ํ ์ผ
- ๋ฐฑ์ค ๋ธ๋ก ์ฆ3 5๋ฌธ์
- ๋ฆฌ์กํธ effects ๊ฐ์ ์๊ฐ
โ ํ ์ผ
- ๋ฐฑ์ค 1๋ฌธ์ (…)
ํ๊ธด ํ์์ง๋ง 2์๊ฐ์ด๋ ๊ฑธ๋ ธ๋ค ์๋ 2์๊ฐ ์์ 5๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ํ์ผ๋ ๊ตฌ๊ธ์ ๋ต๋ ์๋์์ ์ผ๋ฅธ ํ์ ํ๋๋ฐ 1๋ฌธ์ ํธ๋๋ฐ ์๊ฐ์ ๋ค ์จ๋ฒ๋ ธ๋ค...
๋ธ๋ก ์ฆ๋ฉด ์ฝํ ์์ ๋์ค์ง๋ ์์ ๋ฌธ์ ์ธ๋ฐ ์ด๋ ๊ฒ ์ค๋ ๊ฑธ๋ ค์ ์ฐ์ง๋...
1598๋ฒ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌด๋ ์ซ์ ๋์ด ๋ฌธ์ ์ธ๋ฐ ์ซ์์ ์ซ์ ์ฌ์ด์ ์ด๋๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์๋ค
๋จผ์ ๊ฐ ์ซ์๋ฅผ ๋๋จธ์ง ์ฐ์ฐ์์ ๋๋๊ธฐ ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ์ขํ๋ฅผ ๊ตฌํ๊ณ ๊ฐ ์ขํ๋ฅผ ๋นผ์ค ๊ฐ์์ ๋ํด์ฃผ๋ฉด ๋๋ค
- ๋ฆฌ์กํธ effects ๊ฐ์ ์๊ฐ
์ฌ์ค useEffect ๋ ์ฒ์ ๋ฐฐ์ธ ๋ ์ ํํ ์ดํดํ๊ณ ์ด ๊ฑด ์๋๋ผ์ ์ด์ ์ผ ์ข ์ดํด๊ฐ ์ ๋๋ ๋๋์ด์๋ค
์ฐ๋ฉด์๋ ์ด๊ฒ ๋ง๋? ๋ผ๋ ๋๋์ด์๋๋ฐ ์ด์ ๋ ์ข ์๊ณ ์ธ ์ ์์ ๊ฒ ๊ฐ์๋ค
ํนํ cleanup ์ ์์ง๋ ๋ชปํ๋ ๊ธฐ๋ฅ์ด์๋๋ฐ ํ์คํ ๋ง์ด ์ธ ์ผ์ ์์ ๊ฒ ๊ฐ์๋ค
์ด๋ค ์ฝ๋๋ฅผ ์คํํ๋ค๊ฐ ์ง์ธ ๋๋ ์ด๋ค ํจ์๋ฅผ ์คํ์์ผ ์ง์์ค ์ ์๋ค๋ ๊ธฐ๋ฅ์ผ๋ก? ์ดํดํ๋ค
11/25
๐ ํ ์ผ
- ๋ฐฑ์ค ๋ธ๋ก ์ฆ3 1๋ฌธ์ (…)
- ์ฌ๊ท ์ฉ๋ฒ ๊ฐ์
- ์๊ณ ๋ฆฌ์ฆ ๋ณต์ต
โ ํ ์ผ
- ๋ฐฑ์ค ๋ธ๋ก ์ฆ3 1๋ฌธ์ (…)
์ด์ 1703๋ฒ ์์ฅ์ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ๋ฌธ์ ์์ฒด๊ฐ ์ดํด๊ฐ ๋์ง ์์์ ํ์์๊ฒ ๋ฌผ์ด๋ดค๋ค
๋๋ฌด์ ๋์ด, ์์ฅ์ ๊ฐ์, ๊ฐ์ง์น๊ธฐ ๊ฐ์, ์์ฅ์ ๊ฐ์, ๊ฐ์ง์น๊ธฐ ๊ฐ์, ...
ํ ์ค์ ๋๋ฌด์ ๋์ด๋งํผ ์์ฅ์ ๊ฐ์์ ๊ฐ์ง์น๊ธฐ ๊ฐ์๊ฐ ๋ฐ๋ณต๋์ด ์ถ๋ ฅ๋๊ณ ๊ฐ ๋๋ฌด์ ๋ํ ๋จ์ ์์ฅ์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๋ ๊ฑฐ์๋ค
๊ทธ๋์ ๋๋ ๊ฐ ์ค์ ๋ํด ์ด์ค for ๋ฌธ์ ๋๋ ค์ cnt ๋ ์ฒ์ ์์ฅ์ ๊ฐ์๋ก ์ค์ ํ ๋ค ํ์ฌ ๊ฐ์ด ์ง์๋ฒ์งธ์ ์๋ ์ซ์๋ฉด cnt ์ ํ์ฌ ์ซ์ ๋ค์ ์ซ์์ ๊ณฑํด์ cnt ๊ฐ์ผ๋ก ๋ฃ์ด์ฃผ๊ณ ํ์๋ฒ์งธ ์ซ์๋ฉด cnt ์์ ๋ค์ ์ซ์๋ฅผ ๋นผ์ cnt ๊ฐ์ผ๋ก ๋ฃ์ด์คฌ๋ค
์ฆ ์์ฅ์ ์ ๊ฐ์ง์น๊ธฐ๋ฅผ ๋นผ๊ณ ๋ค์ ๋์ด์๋ ๊ทธ ๊ฐ์ ๊ทธ ๋์ด ์์ฅ์ ์ ๊ณฑํ๊ณ ๊ทธ ๊ฐ์ ๊ทธ ๋์ด ๊ฐ์ง์น๊ธฐ ๊ฐ์ ๋นผ์ค ๊ฒ์ด๋ค
- ์ฌ๊ท ์ฉ๋ฒ ๊ฐ์
์ค๋ ์ ์๊ณ ๋ฆฌ์ฆ ์์ ์ธ ์ฌ๊ทํจ์์ DFS ๊ธฐ์ด ํํธ๋ฅผ ์ํด ๊ฐ์ฌ๋์ด ์ฌ๊ท ์ฉ๋ฒ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ค๋ผ๊ณ ํ์ ์ ๊ธํ๊ฒ ๋ค์๋ค
์ฌ๊ท ์ฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ํจ์ ์์์ ์๊ธฐ ํจ์๋ฅผ ๋ถ๋ฌ์ ์คํ ๋ง๋ฅ ํธ์ถํ ํจ์๋ค์ ๋ฐ๋ณต์ ์ผ๋ก ์์์ ๋์ค์ ํธ์ถํ ํจ์ ๊ฐ๋ถํฐ ์ถ๋ ฅํด์ฃผ๋ ๊ฒ์ด๋ค
๋น์ทํ ๋ฌธ์ ๋ค์ ๊ณ์ ์ค๋ช ํด์ฃผ์ จ๋๋ฐ ์๋ ์ดํดํ๊ธฐ์ ๋ณต์กํ๊ฒ ๋์๊ฐ์ ๋ค ๋ฃ๊ณ ๋์๋ ๊ธด๊ฐ๋ฏผ๊ฐํ๋ค
- ์๊ณ ๋ฆฌ์ฆ ๋ณต์ต
๊ทธ๋ฆฌ๋ ๊ณผ์ ๋ก ๋ด์คฌ๋ ์จ๋ฆ์ ์ ๋ฌธ์ ๋ฅผ ํ์ด๋ดค๋ค
์จ๋ฆ ์ ์ ๋ฌธ์ ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด๋ ๋น๊ตํด์ ํค๋ ํฌ๊ณ ๋ชธ๋ฌด๊ฒ๋ ๋ฌด๊ฑฐ์ด ์ฌ๋์ด ์์ผ๋ฉด ํ๋ฝ, ์์ผ๋ฉด ์ ๋ฐ๋๋๋ฐ ๊ทธ์ ๋ํ ์ต๋ ์ธ์ ๋ฐํํ๋ ๋ฌธ์ ์๋ค
์ด ๋ฌธ์ ๋ ํค๋ ๋ชธ๋ฌด๊ฒ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ๋จผ์ ํด์ค ๋ค ๋๋จธ์ง ํค๋ ๋ชธ๋ฌด๊ฒ๋ฅผ ์ฐจ๋ก๋ก ๋น๊ตํด์ฃผ๋๋ฐ ์ฒซ ์ฌ๋์ ๊ฐ์ max ๋ก ๋ฃ๊ณ ๊ทธ max ๋ฅผ ๋ค์ ์ฌ๋์ ๊ฐ๊ณผ ๋น๊ตํ์ฌ ํฌ๋ฉด max ๊ฐ์ผ๋ก ๋ฃ์ด์ค ๋ค ์นด์ดํ ์ ํด์ฃผ๊ณ ์์ผ๋ฉด ํ๋ฝ์ํจ๋ค
์ค๋ ๋ฐฐ์ด ์ฌ๊ทํจ์์ DFS ๊ธฐ์ด ํํธ๋ ์ดํดํ๊ธฐ์๋ง ๊ธ๊ธํด์ ๊ฑฐ์ ํ์ด๋ณด์ง๋ ๋ชปํ๋ค
๋ฐฐ์ธ์๋ก ์ดํด๊ฐ ์ ์ ๋์ง ์๋ ๋๋์ด์๋ค
๊ฐ์ฌ๋์ ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํด ์์ฐ์ n ์ ๋ํด 1 ~ n ๊น์ง ๋ฐํํ๋ ๋ฌธ์ ๋ก ์ค๋ช ํ์ จ๋ค
1. ์คํ๊ณผ ๊ฐ๋ค. ํจ์๊ฐ ํธ์ถ๋๋ฉด ์คํ์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ์ ์คํํ๋ ์์ด๋ผ๋ ๊ฒ์ด ์๊ธด๋ค
2. ํจ์๊ฐ ํธ์ถ๋๋ฉด ๋งค๊ฐ๋ณ์์ ์ง์ญ๋ณ์(ํจ์์์์ ์์ฑ๋ ๋ณ์), ๋ณต๊ท์ฃผ์(ํ ์ผ์ด ๋๋๋ฉด ์ ์๋ฆฌ๋ก ๋ณต๊ท) ๋ฅผ ์ปจํธ๋กคํ๋ค
3. ์คํ ์๋จ์ ํ๋ ์์ด ์๋ํ๊ณ dfs(n-1) ์ ๋ง๋๋ ์๊ฐ ํธ์ถ์ด ์ผ์ด๋๋ฉด ๊ทธ ์๋ฆฌ๊น์ง ํ๋ค๊ณ ์ฌ๋ฆฝ์ํ์ ๋ค์ด๊ฐ๊ณ dfs(2) ๊ฐ ์๋๋๋ค.
4. ๋ค์ 2์ ๋ํด dfs(n-1) ํธ์ถ๋๋ฉด ๊ทธ ์๋ฆฌ๊น์ง ํ๋ค๊ณ ๊ธฐ์ตํ๊ณ dfs(1) ์ด ํธ์ถ, ์ด๊ฒ์ด ๋ฐ๋ณต๋๋ค
5. ๊ทธ๋ฆฌ๊ณ dfs(0) ์ด ๋๋ฉด return ์ด ๋๊ณ ์คํ์๋จ์ d(0) ์ ๊ทธ๋ฅ ์คํ์์ ์ฌ๋ผ์ง๊ณ , dfs(1) ๋ค์ด๊ฐ๋ฉด ํจ์ ๋์์ dfs(n-1) ๋ผ์ธ์ผ๋ก ์ฌ๋ผ๊ฐ์ ๋ค์ ๋ผ์ธ์ธ console.log(n) ์ด ์ถ๋ ฅ๋๊ณ dfs(1) ์ญ์ , ์ด๊ฒ์ด ์คํ์์ ๋ค ์ฌ๋ผ์ง ๋๊น์ง ๋ฐ๋ณต๋๋ค.
๋ค๋ฅธ ํํธ๋ค์ ๊พธ์ญ๊พธ์ญ ์ดํดํ๋ฉด ๋ค ์ดํด๊ฐ ๋์ด์ ๋ฌธ์ ๋ ์ฝ๋ ์ด๋ ต๋ ์ค๋๊ฑธ๋ฆฌ๋๋ผ๋ ํ์๋๋ฐ ์ฌ๊ท๋ ์ฌ์๋ ์ด๋ ค์๋ ๋ค ํ์ง ๋ชปํ๋ค..ใ ใ
11/27
๐ ํ ์ผ
- 2์ฐจ ๊ณผ์ : movie api 2์ฐจ ์ ์ถ ์.
โ ํ ์ผ
- 2์ฐจ ๊ณผ์ : movie api 2์ฐจ ์ ์ถ ์.
2์ฐจ ๊ณผ์ ๋ฅผ ์ ์ถํ๊ณ ํผ๋๋ฐฑ์ ๋ฐ์ ๋ถ๋ถ๊ณผ ๋ฏธ์์ฑ์ด์๋ ๋ถ๋ถ์ ์์ ํ๋ค
ํนํ ๋ชจ๋ํ๋ฅผ ์ด๋์ ๋ ์ฑ๊ณตํด์ ๋๋ฌด ๋ฟ๋ฏํ๋ค ์ฌ์ค ์ข ๋ฏธ๋ฃจ๋ค๊ฐ ์ค๋ ๊ฑฐ์ ๋ค ๊ตฌํ์ ํ๊ฒ ๋์๋๋ฐ ํผ๋๋ฐฑ์ ๋ฐ๊ฒ ๋ค๋ ๋ง์๋ณด๋ค ๋ด๊ฐ ๋ฆฌํฉํ ๋ง์ ํด๋ด์ผ ๊ฒ ๋ค๋ ๋ค์ง์ด ๋ ์ปธ๋ค
๋ชจ๋ํ๋ฅผ ํ๊ธด ํ์ง๋ง ์ํ ๋ชฉ๋ก์ ๋๋๋ง ํ๋ ๋ถ๋ถ์ ์์ง๋ ์ฝ๋๊ฐ ๋ง์ด ๊ธด ๊ฒ ๊ฐ์ ์ ๋ฆฌํ ํ์์ฑ์ ๋๋๋ค
๊ทธ๋ฆฌ๊ณ hashchange ๋ฅผ if ๋ฌธ์ผ๋ก ํ๋ ๊ฒ๋ณด๋ค switch ๋ฌธ์ผ๋ก ์กฐ์ ํ๋ ๊ฒ์ด ๋ ์ง๊ด์ฑ์ด ์๋ค๊ณ ํผ๋๋ฐฑ์ ํด์ฃผ์ ์ ์์ ์ ํ๊ธด ํ๋๋ฐ case ๋ฌธ ์์์ if ๋ฌธ์ ๋ง์ด ์ฌ์ฉํ์ฌ ์ฝ๋์ ํจ์ฉ์ฑ์ด ์์ฌ๋๊ธด ํ๋ค
์ด๋ localStorage ๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์์ด๋ฅผ localStorage ์ ์ ์ฅํด ๋ค๋ก ๊ฐ๋ฉด ์ ์ฅํ ๊ฒ์์ด๋ก ๋์ค๋๋ก ๋ฐ์ํ๊ณ ํ๋๋ฐ ์ด์ฐ์ ์ฐ ์ฐ๋ ๋ฐ์์ ๋์ง๋ง ์์ง type value ์ page count value ๋ฐ์์ ํ์ง ๋ชปํ๋ค ๋ ์ค๋ฅ๋ ๋๋ฌด ๋ง์ด ์๊ฒจ์ localStorage ๋ง๊ณ ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก ์จ๋ณด๊ณ ์ถ์๋ค
'๐จ ํจ์คํธ์บ ํผ์ค > ์คํฐ๋ ์ผ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[221205-221211] ์ ๋ชฉ์ ๋ญ๋ผ๊ณ ์จ์ผ ํ์ง (2) | 2022.12.16 |
---|---|
[221128-221204] ๋ฐ์๋ค ๋ฐ๋น ํ๋์ฌํ (1) | 2022.12.09 |
[221114-221120] ๋ณต์ต์ ํ์ ์์ต์ ์ ํ (1) | 2022.11.25 |
[221107-221113] ๋ ์๋ ๋๊ณผ ์์. (0) | 2022.11.18 |
[221031-221106] ๊ฐ๋ณด์๊ณ . (1) | 2022.11.11 |