์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- jsx
- Lifting state
- ์ ์ด์ฝฅ ๋์จ
- ์คํ ์ด์ธ ์ฝ๋
- ๋ฒ๋ค๋ง
- ์ปดํจํฐ ๊ณตํ
- WEB
- ํผํฐ ๋ชจ๋น์ ๋ฒ์ง ๋ชจํ
- css
- ์๋งจํฑ์์
- ์คํ ์ด์ธ ์ฝ๋42๊ธฐ
- Cmarket
- ๊ณ ์ฐจํจ์
- JavaScript
- css animation
- prototype
- git
- ํ ์คํธ ์์
- Study
- html
- wai-aria
- State
- fetch api
- ํผํฐ ๋ชจ๋น
- props drilling
- Effect Hook
- React
- BFS์ DFS
- ๋ฒ์ง ๋ชจํ
- ํ๋ก๊ทธ๋๋จธ์ค
- Today
- Total
roqkf
์คํฐ๋ ๊ธฐ๋ก 18 ๋ณธ๋ฌธ

๋ฌธ์ ๋ชฉ๋ก

โค๏ธ๐ฅ ์ฌ๋ฐ๋ฅธ ๊ดํธ

function solution(s) {
const start = '(';
const end = ')';
//! ์์์ด "("๋ก ์์ํ์ง ์์ผ๋ฉด ๋ฐ๋ก false ๋ฆฌํด
if (s[0] !== start || s.length < 2 || s.at(-1) !== end) return false;
let cnt = 0;
//! '('์ผ ๋ cnt++
//! else => cnt๊ฐ 0์ด๋ผ๋ฉด ์์ '('๊ฐ ์๋ค๋ ๊ฒ์ด๋ฏ๋ก ๋ฐ๋ก false ๋ฆฌํด
//! cnt--
for (let i = 0; i < s.length; i++) {
if (s[i] === start) cnt++;
else {
if (!cnt) {
return false;
}
cnt--;
}
}
//? ์ต์ข
์ ์ผ๋ก cnt๊ฐ 0์ด๋ฉด true;
return cnt === 0 ? true : false;
}
solution('()())(()');
์ฒ์์ ์ฌ๋ ๊ดํธ๋ก ์์ํด์ ๋ซ๋ ๊ดํธ๋ก๋ง ๋๋๋ฉด ๋๋ ์ค ์์๋ ๋ฌธ์ ... ์ ์ด๋ ๊ฒ ์ฌ์ด์ง ์๋ฌธ์ด ๋ค ๋๋ ํญ์ ๋ด๊ฐ ๋ฌธ์ ์ดํด๋ฅผ ์๋ชปํ๋ ๊ฒ,,,, ๋ฐ๋ก ์์ ํด์ ์ต์ข ์ผ๋ก ๋์จ ์ฝ๋์ด๋ค. ํจ์จ์ฑ ๋ฌธ์ ๋๋ฌธ์ ์ฒ์ if๋ฌธ์์ ์ฒ์์ด๋ ๋์ด ์ฌ๋ ๊ดํธ, ๋ซ๋ ๊ดํธ๋ก ๋๋์ง ์์ผ๋ฉด ๋ฐ๋ก false๋ฅผ ๋ฆฌํด ์์ผ ์คฌ๋ค.
โค๏ธ๐ฅ ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ

function solution(s) {
let cnt = 0;
let zero = 0;
//! ํ ๊ธ์๊ฐ ๋จ์ ๋๊น์ง ์คํ
while (s > 1) {
let len = s.length;
//? s์ ๋ชจ๋ 0์ ์ ๊ฑฐ
s = s.replaceAll('0', '');
//? ์ฒ์ ๋ค์ด์จ s์ ๊ธธ์ด - 0์ ์ ๊ฑฐํ ํ์ s์ ๊ธธ์ด๋ฅผ zero์ ๋์
zero += len - s.length;
//? s์ ๊ธธ์ด๋ฅผ 2์ง๋ฒ์ผ๋ก ํํ
s = s.length.toString(2);
//? ์ด์ง ๋ณํ ํ์ cnt
cnt++;
}
return [cnt, zero];
}
solution('110010101001');
ํ ๊ธ์๊ฐ ๋จ์ ๋๊น์ง ๋ฐ๋ณตํ๋ ์ ์๋ฅผ ์ํ์์ผ ์ฃผ์๋ค ๋์ ๋ค๋ฅด๊ฒ ์ ๊ท์์ ํตํด์ ํ์ด๋ด์ ๋์๋ ์ฝ๋๊ฐ ๊ธฐ์ต์ ๋จ์ ๋จ๊ธฐ๋๋ก ํ๊ฒ ๋ค ใ ใ
function solution(s) {
var answer = [];
let round = 0; // ์คํํ ํ์ฐจ
let countzero = 0; // ์ ๊ฑฐํ ๋ชจ๋ 0์ ๊ฐ์
const take1 = /[1]/g // s์์ '1'๋ง ๊ฐ์ ธ์ค๊ธฐ
const take0 = /[0]/g // s์์ '0'๋ง ๊ฐ์ ธ์ค๊ธฐ
let delzero = 0; // ์ ๊ฑฐํ 0์ ๊ฐ์
let num1 = 0; // 0์ ๊ฑฐ ํ ๊ฐ์ ๊ธธ์ด
while(s.length !== 1){
round++; // ๋ฐ๋ณต๋ฌธ์ด ๋ ๋๋ง๋ค round๋ฅผ ๋ํด์ฃผ๊ธฐ
//* Step1. ์ ๊ฑฐํ 0์ ๊ฐ์ ๊ตฌํ๊ธฐ
// tmp์ 0์ด ์๋ค๋ฉด 0์ ๊ฐ์๋ฅผ ๋ฐํ
if(take0.test(s)){ // tmp์ 0์ด ์๋ค๋ฉด
delzero = s.match(take0).length; // tmp์ 0์ ๊ฐ์๋ฅผ ๋ฐํ
}else{
delzero = 0; // tmp์ 0์ด ์๋ค๋ฉด ์ ๊ฑฐํ 0์ ๊ฐ์ 0๊ฐ๋ก ์ ์ธ
}
countzero += delzero; // 0์ ์ ๊ฑฐํ ๊ฐ์
//* Step2. ์ด์ง๋ฒํ ํ๊ธฐ์ํ 1์ ๊ฐ์ ๊ตฌํ๊ธฐ
num1 = s.match(take1).length; // 1์ ๊ฐ์๋ฅผ ๋ฐํ
//* Step3. ๊ฐ์ ธ์จ 1์ ๊ฐ์๋ฅผ ์ด์ง๋ฒํ๋ก ๋ณํํ๊ธฐ
s = num1.toString(2); // 1์ ๊ฐ์๋ฅผ ์ด์ง๋ฒํ
}
answer.push(round, countzero);
return answer;
}
โค๏ธ๐ฅ ์ซ์์ ํํ

function solution(n) {
// ์๊ธฐ ์์ ์ ๋ฌด์กฐ๊ฑด ํฌํจ์ด๋๊น cnt๋ 1๋ถํฐ ์์
let cnt = 1;
// n์ ์ ๋ฐ ์ด์์ ์๋ ์กฐํฉ ์ n์ ๋ฌด์กฐ๊ฑด ๋์ผ๋๊น n/2
for (let i = 1; i <= n / 2; i++) {
let sum = i;
for (let j = i + 1; j <= n; j++) {
sum += j;
if (sum === n) cnt++;
else if (sum > n) break;
}
}
return cnt;
}
solution(15);
์ ๊ทผ์ ์ด๋ป๊ฒ ํด์ผ ๋ ์ง ๊ณ ๋ฏผํ๋ ๋ฌธ์ ์ด๋ค. ํ๋์ฉ ์ดํด๋ณด๋ค๊ฐ ํ๋์ฉ ์กฐํฉํด ๋ณด๋ ์์ผ๋ก ํ์๋ค. ์ด ๋ฌธ์ ๋ํ ํจ์จ์ฑ ๋๋ฌธ์ n์ ์ ๋ฐ๋ง ๊ตฌํด๋ ๋ ๊ฒ ๊ฐ์์ ์ ๋ฐ๋ง ๊ตฌํ๋ ์์ผ๋ก ํ๋๋ฐ ์คํฐ๋ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด์ ํ์ ์ฝ์์ ๊ฐ์๋ก๋ ๊ตฌํ ์ ์๋ค๋ ๊ฑธ ์๊ฒ ๋์๋ค ์ด์ ๋๋ถ์ด ๋ฏผํ๋์ด ๋ฐํํ์๋ ๊ฑธ ๋ณด๋ฉด์ ๋๋จํ๋ ๋ง๋ฐ๊ผ,,,, ์ฝ์์ ์ ๊ทผํ์ ๊ฒ๋ถํฐ๊ฐ ๋ ๋ฉ์ง๋ค.
function getDivisors(n) {
const result = [];
const sqrt = Math.sqrt(n);
for (let i = 1; i < sqrt; i++) {
if (n % i === 0) result.push(i, n / i);
}
if (Number.isInteger(sqrt)) result.push(sqrt);
return result.sort((a, b) => a - b);
}
// global n
const n = 15
// 1 ํ์ธ
function tmp(n) {
const divisors = getDivisors(n);
// ํฉ n/d x d๊ฐ = n
const result = [];
divisors.forEach(d => {
let arr = [];
let D = n / d;
// 1. d odd
// d odd, D odd
// d=3, D=7, n =21 -> 6,7,8
// d odd, D even
// d=5, D=4, n=20 -> 2,3,4,5,6
if (d % 2 === 1) {
for (let i = -Math.floor(d / 2); i <= Math.floor(d / 2); i++) {
if (D + i < 1) break;
arr.push(D + i);
}
}
if (arr.length !== 0) result.push(arr);
arr = [];
// d even, D even
// d=, D=, n=, ->
// d even, D odd
// d=2, D=9, n=18 -> 3,4,5,6
if (D % 2 === 1) {
for (let i = -d; i < d; i++) {
if (Math.ceil(D / 2) + i < 1) break;
arr.push(Math.ceil(D / 2 + i));
}
}
if (arr.length !== 0) result.push(arr);
});
return result;
}
console.log(tmp(n));
// ๊ฒฐ๊ตญ divisors์ d์๋ eachSum(=n/d)์ด ํ ๋น๋๋ค
// -> ๋๊ฐ์ง ์ผ์ด์ค ํฉ์น๊ธฐ
// 2
function solution2(n) {
let cnt = 0;
const divisors = getDivisors(n);
divisors.forEach(d => {
let D = n / d;
if (d % 2 === 1) {
if (D - Math.floor(d / 2) >= 1) cnt++;
if (Math.ceil(d / 2) - D >= 1) cnt++;
}
});
return cnt;
}
console.log(solution2(n));
// ์กฐ๊ฑด๋ฌธ ๋ถ์
// ๊ทธ๋ํ
// 3
function solution(n) {
const divisors = getDivisors(n);
return divisors.filter(d => d % 2 === 1).length;
}
console.log(solution(n));
'๐ป Development > Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํฐ๋ ๊ธฐ๋ก 21 (0) | 2023.01.09 |
---|---|
์คํฐ๋ ๊ธฐ๋ก 20 (0) | 2022.12.27 |
์คํฐ๋ ๊ธฐ๋ก 17 (0) | 2022.12.16 |
์คํฐ๋ ๊ธฐ๋ก 15 (0) | 2022.12.11 |
์คํฐ๋ ๊ธฐ๋ก 14 (1) | 2022.12.11 |