๐ ์ผ์ผ์ด์ค ๋ฐ ์๊ฐ ํ์ด์ง ๋ณด๊ธฐ
ํ๊ธ ๊ธฐ๋ฐ 72์ง๋ฒ ์ธ์ฝ๋ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ฌด๊ถํ๋ 10์ง์ ์ซ์๋ฅผ ํ๊ธ๋ก ์ธ์ฝ๋ฉ/๋์ฝ๋ฉํ๋ TypeScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ํ๊ธ์ ํน์ฑ์ ํ์ฉํ์ฌ ์ซ์๋ฅผ ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ํ๊ธ ๋ฌธ์์ด๋ก ๋ณํํฉ๋๋ค.
- 72์ง๋ฒ ๊ธฐ๋ฐ: ํ๊ธ ์กฐํฉ์ ํ์ฉํ ํจ์จ์ ์ธ ์ซ์ ์ธ์ฝ๋ฉ
- ๋น์์ด ํํฐ๋ง: ๋ถ์ ์ ํ ๋จ์ด ์กฐํฉ์ ์๋์ผ๋ก ๋ฐฐ์
- ์๋ฐฉํฅ ๋ณํ: ์ซ์ โ ํ๊ธ ๋ฌธ์์ด ์ํธ ๋ณํ ์ง์
- ์คํ ๋ณด์ : ์ ์ฌํ ๊ธ์์ ์คํ๋ฅผ ์๋์ผ๋ก ์์
- TypeScript ์ง์: ์์ ํ ํ์ ์ ์ ์ ๊ณต
npm install mugunghwa๋๋
pnpm add mugunghwaimport { encode, decode } from 'mugunghwa';
// ์ซ์๋ฅผ ํ๊ธ๋ก ์ธ์ฝ๋ฉ
const encoded = encode(31252352334);
console.log(encoded); // ์: "๊ฐ๋-๋ค๋ผ-๋ง๋ฐ"
// ํ๊ธ์ ์ซ์๋ก ๋์ฝ๋ฉ
const decoded = decode(encoded);
console.log(decoded); // 31252352334import { encode, decode } from 'mugunghwa';
// ์ธ๋์ค์ฝ์ด๋ฅผ ๊ตฌ๋ถ์๋ก ์ฌ์ฉ
const encoded = encode(12345, '_');
console.log(encoded); // ์: "๊ฐ๋_๋ค๋ผ"
const decoded = decode(encoded, '_');
console.log(decoded); // 12345import { decode, setDebug } from 'mugunghwa';
// ๋๋ฒ๊ทธ ๋ชจ๋ ํ์ฑํ (์๋ฌ ๋ฐ์ ์ ์์ธ ์ ๋ณด ์ถ๋ ฅ)
setDebug(true);
try {
const result = decode('์๋ชป๋์ฝ๋');
console.log(result);
} catch (error) {
console.error(error); // ์์ธํ ์๋ฌ ๋ฉ์์ง ์ถ๋ ฅ
}
// ๋๋ฒ๊ทธ ๋ชจ๋ ๋นํ์ฑํ (๊ธฐ๋ณธ๊ฐ: false)
setDebug(false);
const result = decode('์๋ชป๋์ฝ๋'); // null ๋ฐํ# ์ซ์ ์ธ์ฝ๋ฉ
pnpm run encode 12345
# ๋ฌธ์์ด ๋์ฝ๋ฉ
pnpm run decode "๊ฐ๋-๋ค๋ผ"
# ๋๋ค ํ
์คํธ
pnpm run random
# ์ ํจ์ฑ ๊ฒ์ฆ
pnpm run validate10์ง์ ์ซ์๋ฅผ ํ๊ธ ๋ฌธ์์ด๋ก ์ธ์ฝ๋ฉํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
index: ์ธ์ฝ๋ฉํ ์์ ์ ์ (0 ์ด์)separator: ๊ตฌ๋ถ์ ๋ฌธ์์ด (๊ธฐ๋ณธ๊ฐ:"-")
๋ฐํ๊ฐ:
- ์ฑ๊ณต ์: ์ธ์ฝ๋ฉ๋ ํ๊ธ ๋ฌธ์์ด
- ์คํจ ์:
null(์์, ์์, NaN ๋ฑ)
ํ๊ธ ๋ฌธ์์ด์ 10์ง์ ์ซ์๋ก ๋์ฝ๋ฉํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
code: ๋์ฝ๋ฉํ ํ๊ธ ๋ฌธ์์ดseparator: ๊ตฌ๋ถ์ ๋ฌธ์์ด (๊ธฐ๋ณธ๊ฐ:"-")
๋ฐํ๊ฐ:
- ์ฑ๊ณต ์: ๋์ฝ๋ฉ๋ ์ซ์
- ์คํจ ์:
null(์๋ชป๋ ํ์)
// ๋ณตํฉ ๋ค์ง์๋ฅผ 10์ง์๋ก ๋ณํ
decimalBase(maxMatrix: number[], indexMatrix: number[]): number
// 10์ง์๋ฅผ ๋ณตํฉ ๋ค์ง์๋ก ๋ณํ
multipleBase(maxMatrix: number[], indexDecimal: number): number[]
// ์์ ์ธ์ฝ๋ฉ ๊ธธ์ด ๊ณ์ฐ
expectLength(index: number): number
// ๋๋ฒ๊ทธ ๋ชจ๋ ์ค์ (์๋ฌ ๋ฐ์ ์ ์์ธ ์ ๋ณด ์ถ๋ ฅ)
setDebug(value: boolean): void๋ฌด๊ถํ๋ ํ๊ธ์ ์์๊ณผ ๋ชจ์ ์กฐํฉ์ ํ์ฉํ์ฌ 72์ง๋ฒ์ ๊ตฌํํฉ๋๋ค. ํ์ง๋ง ๋จ์ํ 72์ง๋ฒ๋ง ์ฌ์ฉํ๋ฉด ๋ฌด์์ ๊ธ์ ์กฐํฉ์์ ๋น์์ด๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ง์ ์์น์ ๊ธ์๋ค์ 84์ง๋ฒ์ผ๋ก ํ๊ธฐํ ํ, ๋ถ์ ์ ํ ์กฐํฉ์ ๋ฐฐ์ ํฉ๋๋ค.
72ยฒ = 5,184
84ยฒ = 7,056
7,056 - 5,184 = 1,872
โ 5,184๊ฐ์ ์กฐํฉ ์ค 1,872๊ฐ(36.1%)์ ๋ถ์ ์กฐํฉ์ ๋ฐฐ์
ํ์ ์์น์ ๊ธ์๋ค์ 98์ง๋ฒ์ผ๋ก ํ๊ธฐํ์ฌ ๋ ๋ง์ ๋ถ์ ์กฐํฉ์ ๋ฐฐ์ ํฉ๋๋ค.
84ยฒ = 7,056
98ยฒ = 9,604
9,604 - 7,056 = 2,548
๊ธฐ์กด 1,872๊ฐ ๋ถ์ ์กฐํฉ ์ ์ธ:
2,548 - 1,872 = 676
โ 2,548๊ฐ์ ์กฐํฉ ์ค 676๊ฐ(26.5%)์ ๋ถ์ ์กฐํฉ์ ๋ฐฐ์
- ์ง์ ๋จ์: 72์ง๋ฒ + 12๊ฐ ์ถ๊ฐ ๊ธ์ = 84์ง๋ฒ
- ํ์ ๋จ์: 84์ง๋ฒ + 14๊ฐ ์ถ๊ฐ ๊ธ์ = 98์ง๋ฒ
- ์คํ ๋ณด์ : ์ ์ฌํ ๊ธ์ ์๋ ์์ ๊ธฐ๋ฅ ๋ด์ฅ
- ๊ตฌ๋ถ์ ์ฒ๋ฆฌ: ๊ฐ๋ ์ฑ์ ์ํ ๊ตฌ๋ถ์ ์๋ ์ฝ์
- ๋ฐ์ดํฐ ์์ถ: lz-string์ ํ์ฉํ ์ธ์ฝ๋ฉ ํ ์ด๋ธ ์์ถ ์ ์ฅ
