[250812] TIL
Today I Learned (2025-08-12)
React props, state์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
-
react props๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ๋ฐ์ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ๋ฅผ ๋งํฉ๋๋ค. props ๊ฐ์ ์์ ์ปดํฌ๋ํธ์์ ๋ณ๊ฒฝ ํ ์ ์๊ณ props ๊ฐ ๋ณํ๋ฉด ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง ๋์์ด ๋ฉ๋๋ค.
-
state๋ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๊ด๋ฆฌํ๋ ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋งํฉ๋๋ค. state๊ฐ ๋ณํ๋ฉด ์ปดํฌ๋ํธ๊ฐ ๋ค์ ๋ฆฌ๋ ๋๋ง ๋ฉ๋๋ค.
props๊ฐ ์์ ์ปดํฌ๋ํธ์์ ๋ณํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
- ์์ ์ปดํฌ๋ํธ์์ ๋ณํ์ง ์๋ ์ด์ ๋, ๋ฆฌ์กํธ์์ ๋ฐ์ดํฐ๊ฐ ๋จ๋ฐฉํฅ์ผ๋ก ํ๋ฅด๊ธฐ๋๋ฌธ์ ๋๋ค.
- ๋ง์ฝ props๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋ค๋ฉด ์์์ ๋์์ด ์ธ๋ถ ์ํ ๋ณํ์ ์ข ์๋ ์ ์์ด์ ๋ ๋ฆฝ์ฑ์ด ๋ฎ์์ง๋๋ค. ๊ทธ๋ผ ์ธ๋ถ์์ ๋ฌด์์ ํ๋ ๋ด๋ถ๋ก์ง์์ ์์ธกํ๊ธฐ ์ด๋ ค์์ง๋๋ค. props๊ฐ ๋ถ๋ณ์ผ๋ก ์ ์ง๋จ์ผ๋ก์จ ๋ ๋ฆฝ์ฑ์ด ์ฌ๋ผ๊ฐ๊ณ ์ฌ์ฌ์ฉ์ฑ์ด ๋์์ง๊ณ ์ฝ๋์ ์บก์ํ๊ฐ ๊ฐํ๋ฉ๋๋ค.
์ฝ๋ฉ ํ ์คํธ ๋ฌธ์ ํ๊ธฐ
[๋ฐฐ์ด] ๋ชจ์๊ณ ์ฌ
- ๋ฌธ์ 2๊ฐ ํ https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=javascript
1๋ฒ ์ํฌ์ : 1 2 3 4 5 ๋ฐ๋ณต 2๋ฒ ์ํฌ์ : 2 1 2 3 2 4 2 5 ๋ฐ๋ณต 3๋ฒ ์ํฌ์ : 3 3 1 1 2 2 4 4 5 5 ๋ฐ๋ณต
์ฐ์ ์ต๋ 10,000๋ฌธ์ ๋๊น, 10^4 ๋ฐฐ์ด ํ๊ฐ์ฉ ๋น๊ตํ๋ฉด 3N X ํ ๋ฒ๋ง ๋๋ฉด ๋ ๋ฏ O
1์ด์ 10^8 ์ฐ์ฐ ํ ์ ์์ผ๋๊น 10,000๊ฐ ์ ๋ ฅ๊ฐ์ด ๋ค์ด์๋ 0.0003์ด ๊ฑธ๋ฆฐ๋ค. ์ฆ ์ํ์ผ๋ก ํ์ด๋ ๋๋ค !
๊ทผ๋ฐ ์นด์ดํธ๋ฅผ ํด์ 1๋ฒ 2๋ฒ 3๋ฒ์ ์ด๋ป๊ฒ ๋ฃ์์ง๊ฐ ๊ณ ๋ฏผ๋๋ค. 1, 2, 3๋ฒ์ด๋ผ๋ ์ฌ๋ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉด์๋.. ์นด์ดํธ ๊ฐฏ์๋ ๊ฐ๊ณ ์์ด์ผํ๋ค. ๊ฐ์ฒด๋ก ํด์ผํ๋ ? ๊ฐ์ฒด๊ฐ sort ๊ฐ ๋๋์ง ๋ชจ๋ฅด๊ฒ ๋ค. ์๋๋ฉด 2์ฐจ์ ๋ฐฐ์ด?
์ฐ์ 2์ฐจ์ ๋ฐฐ์ด๋ก ํ์ด๋ด์ผ๊ฒ ๋ค.
function solution(answers) {
let answer = [];
let a = [1, 2, 3, 4, 5];
let b = [2, 1, 2, 3, 2, 4, 2, 5];
let c = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
let count = [
[1, 0],
[2, 0],
[3, 0],
];
for (let i = 0; i < answers.length; i++) {
if (answers[i] == a[i % 5]) count[0][1] += 1;
if (answers[i] == b[i % 8]) count[1][1] += 1;
if (answers[i] == c[i % 10]) count[2][1] += 1;
}
count.sort((a, b) => b[1] - a[1]);
const max = count[0][1];
for (item of count) {
if (item[1] == max) answer.push(item[0]);
}
return answer;
}
์ฑ ํ์ด
- ์ ๋ ์ด๋ค ๋ถ๋ถ์ ๋ค๋ฅด๊ฒ ํ์๋์ง ์๊ฐํด๋ณด์์๋, Math.max๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฅ ํฐ ์๋ฅผ ๊ตฌํ์ต๋๋ค.
- ํจํด์ ๋ฐฐ์ด๋ก ๋ฃ์์ต๋๋ค.
- ๋ฌธ์ ํ์ด์์๋ 1์ฐจ์ ๋ฐฐ์ด๋ก๋ ๊ทธ๋ฅ ์์๋๋ก ๋ฃ์ด์ 0 ์ธ๋ฑ์ค๊ฐ 1๋ฒ ์ํฌ์, 1 ์ธ๋ฑ์ค๊ฐ 2๋ฒ ์ํฌ์ ์ด๋ฐ์์ผ๋ก ๋ฃ์ด์คฌ์ต๋๋ค.
function solution(answers) {
var answer = [];
// ํจํด์ ๋ฐฐ์ด๋ก ๋ฃ์, ํจ์ฌ ๊น๋ํ ๊ฒ ๊ฐ๋ค.
const patterns = [
[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
];
// ์ํฌ์ ์ ์๋ฅผ ์ ์ฅํ ๋ฐฐ์ด
const scores = [0, 0, 0];
for (const [i, answer] of answers.entries()) {
for (const [j, pattern] of patterns.entries()) {
if (answer === pattern[i % pattern.length]) {
scores[j] += 1;
}
}
}
// ๊ฐ์ฅ ๋์ ์ ์ ์ ์ฅ
const maxScore = Math.max(...scores);
const highestScores = [];
for (let i = 0; i < scores.length; i++) {
highestScores.push(i + 1);
}
return highestScores;
}
[๋ฐฐ์ด] ๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=javascript
- ์์ ํ์์ผ๋ก ํ
function solution(numbers) {
var answer = [];
// ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์ซ์๋ฅผ ๋ํด์ answer์ ๋ฃ๋๋ค.
for (let i = 0; i < numbers.length; i++) {
for (let j = i + 1; j < numbers.length; j++) {
answer.push(numbers[i] + numbers[j]);
}
}
// ์ค๋ณต๋๋ ๊ฐ์ set์ ์ด์ฉํด์ ์์ ๊ณ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
answer = [...new Set(answer)];
answer.sort((a, b) => a - b);
return answer;
}
๊ต์ฌ ํ์ด
์ต๋ ๊ฐ์๋ 100์ด๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ ๊ณ ๋ คํ์ง ์์๋ ๋จ
function solution(numbers) {
var answer = [];
for (let i = 0; i < numbers.length; i++) {
for (let j = 0; j < i; j++) {
answer.push(numbers[i] + numbers[j]);
}
}
answer = [...new Set(answer)].sort((a, b) => a - b);
return answer;
}
Leave a comment