๐คฏ “์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธํ์ธํ๋ก๊ทธ๋จ” ์ ๋ง ์ฌ์ด ๋ฐฉ๋ฒ? ๋จ 5๋ถ ๋ง์ ๋๋ด๋ ์๋ฒฝ ๊ฐ์ด๋!
๋ชฉ์ฐจ
- ์์ํ๋ฉฐ: ์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ํ์ธ ํ๋ก๊ทธ๋จ์ด ํ์ํ ๊น?
- ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ๊ตฌ์กฐ: ์จ๊ฒจ์ง ๋น๋ฐ์ ํํค์น๋ค
- ์๋ ์์ผ ๋ฐ ์ฑ๋ณ ์ ๋ณด
- ์ง์ญ ์ฝ๋ ๋ฐ ๋ฑ๋ก ์์
- ๊ฒ์ฆ๋ฒํธ(Check Digit)์ ์๋ฆฌ
- ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ: ์จ๋ผ์ธ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ์ ํจ์ฑ ๊ฒ์ฆ ์๋น์ค ํ์ฉ
- ์ฃผ์ ์๋น์ค ์๊ฐ ๋ฐ ์ ๊ทผ ๋ฐฉ๋ฒ
- ์ฌ์ฉ ์ ์ฃผ์์ฌํญ ๋ฐ ๋ณด์ ๋ฌธ์
- ํ๋ก๊ทธ๋๋ฐ์ ํตํ ์ง์ ํ์ธ (Python ์์)
- ๊ฒ์ฆ ๋ก์ง์ ์ดํด: ๊ณต์ ๋์ ๋ฒ
- ํ์ด์ฌ(Python)์ ํ์ฉํ ๊ตฌํ ์ฝ๋ ๋ฐ ์ค๋ช
- ์ค์ ์ฝ๋ ์์์ ์คํ ๊ฒฐ๊ณผ
- ๋ง์น๋ฉฐ: ์์ ํ๊ณ ์ ํํ ์ ๋ณด ํ์ฉ์ ์ค์์ฑ
์์ํ๋ฉฐ: ์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ํ์ธ ํ๋ก๊ทธ๋จ์ด ํ์ํ ๊น?
์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๋ ๋ํ๋ฏผ๊ตญ ๊ตญ๋ฏผ์ ๊ณ ์ ํ ์๋ณ์์ด๋ฉฐ, ๋ค์ํ ์จ๋ผ์ธ ๋ฐ ์คํ๋ผ์ธ ์๋น์ค์์ ๋ณธ์ธ ํ์ธ์ ํต์ฌ ์๋จ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ณผ์ ์์ ๋๋ก๋ ์ค๋ฅ ์ ๋ ฅ์ด๋ ๋ฌด์์ ์์ฑ๋ ๋ฒํธ๋ฅผ ๊ฑธ๋ฌ๋ด์ผ ํ ํ์๊ฐ ์๊น๋๋ค. ์ด๋ ํ์ํ ๊ฒ์ด ๋ฐ๋ก **”์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธํ์ธํ๋ก๊ทธ๋จ”**์ ๋๋ค. ์ด ํ๋ก๊ทธ๋จ์ ๋ฒํธ์ ์ง์ ์ฌ๋ถ๋ฅผ ์ค์ ๋ก ํ์ ์์คํ ์ ์กฐํํ๋ ๊ฒ์ด ์๋๋ผ, ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๊ฐ ๊ฐ์ง ํน์ ํ ๊ตฌ์กฐ์ ๊ณต์์ ๋ฐ๋ผ ์ ํจ์ฑ(Validity)์ ๊ฒ์ฆํ๋ ์ญํ ์ ํฉ๋๋ค. ์ฆ, ์ด ๋ฒํธ๊ฐ ๋ํ๋ฏผ๊ตญ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ํ์์ ๊ท์น์ ๋ฐ๋ฅด๊ณ ์๋์ง๋ฅผ ํ์ธํ๋ ๊ฒ์ด์ฃ . ์ด ๊ฐ์ด๋๋ฅผ ํตํด ๋๊ตฌ๋ ์ฝ๊ฒ, ๋จ 5๋ถ ๋ง์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ์ ํจ์ฑ์ ํ์ธํ ์ ์๋ ๋งค์ฐ ์ฌ์ด ๋ฐฉ๋ฒ๋ค์ ์์ธํ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ์์๋ณด๊ฒ ์ต๋๋ค. ํนํ ๋ณต์กํ๊ฒ ๋๊ปด์ง๋ ๊ฒ์ฆ๋ฒํธ์ ์๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ค๋ช ํ๊ณ , ์ค์ ๋ก ํ์ฉํ ์ ์๋ ์จ๋ผ์ธ ์๋น์ค์ ๊ฐ๋จํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ๊น์ง ๋ชจ๋ ๋ค๋ฃน๋๋ค.
์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ๊ตฌ์กฐ: ์จ๊ฒจ์ง ๋น๋ฐ์ ํํค์น๋ค
์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๋ ์์๋ฆฌ 6์๋ฆฌ์ ๋ท์๋ฆฌ 7์๋ฆฌ, ์ด 13์๋ฆฌ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์ด 13์๋ฆฌ ์ซ์ ํ๋ํ๋์๋ ์ค์ํ ์ ๋ณด์ ์ ํจ์ฑ์ ๊ฒ์ฆํ๊ธฐ ์ํ ์ํ์ ๊ท์น์ด ์จ์ด ์์ต๋๋ค.
์๋ ์์ผ ๋ฐ ์ฑ๋ณ ์ ๋ณด
์ 6์๋ฆฌ๋ **ํ์ด๋ ์ฐ์์ผ(YYMMDD)**์ ๋ํ๋ ๋๋ค. ์๋ฅผ ๋ค์ด ‘900301’์ด๋ผ๋ฉด 1990๋ 3์ 1์ผ์ ํ์ด๋ฌ์์ ์๋ฏธํฉ๋๋ค. ๋ท 7์๋ฆฌ ์ค ์ฒซ ๋ฒ์งธ ์ซ์, ์ฆ 7๋ฒ์งธ ์ซ์๋ ์ฑ๋ณ ๋ฐ ์ถ์ ์๊ธฐ๋ฅผ ๋ํ๋ ๋๋ค.
| ๋ฒํธ | ์๋ฏธ |
|---|---|
| 1 ๋๋ 2 | 1900๋ ๋ ์ถ์ ๋จ์ฑ(1), ์ฌ์ฑ(2) |
| 3 ๋๋ 4 | 2000๋ ๋ ์ถ์ ๋จ์ฑ(3), ์ฌ์ฑ(4) |
| 5 ๋๋ 6 | 1900๋ ๋ ์ธ๊ตญ์ธ ๋จ์ฑ(5), ์ฌ์ฑ(6) |
| 7 ๋๋ 8 | 2000๋ ๋ ์ธ๊ตญ์ธ ๋จ์ฑ(7), ์ฌ์ฑ(8) |
| 9 ๋๋ 0 | 1800๋ ๋ ์ถ์ ๋จ์ฑ(9), ์ฌ์ฑ(0) (ํ์ฌ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์) |
์ง์ญ ์ฝ๋ ๋ฐ ๋ฑ๋ก ์์
๋ท์๋ฆฌ ์ค **2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ ์ซ์(8, 9, 10, 11๋ฒ์งธ ์๋ฆฌ)**๋ ์ถ์ ๋๋ ๋ฑ๋ก์ง์ ๊ณ ์ ์ฝ๋๋ฅผ ๋ํ๋ด๋ ์ง์ญ ์ฝ๋์ ๋๋ค. ์ด ์ฝ๋๋ ์ถ์ ์ ๊ณ ๋ฅผ ํ ๊ธฐ๊ด์ ๊ณ ์ ๋ฒํธ๋ก, ์ง์ญ๋ณ๋ก ๋ถ์ฌ๋ ๊ท์น์ด ์์ต๋๋ค. ๋๋จธ์ง **6๋ฒ์งธ ์ซ์(12๋ฒ์งธ ์๋ฆฌ)**๋ ํด๋น ๊ธฐ๊ด์์ ๊ทธ ๋ ์ง์ ์ ๊ณ ํ ์ฌ๋์ ๋ฑ๋ก ์์๋ฅผ ๋ํ๋ ๋๋ค. ์ด ๋ฒํธ๋ ๊ฐ์ ๋ , ๊ฐ์ ์ง์ญ์์ ํ์ด๋ ์ฌ๋๋ค์ ๊ตฌ๋ถํ๋ ์ญํ ์ ํฉ๋๋ค.
๊ฒ์ฆ๋ฒํธ(Check Digit)์ ์๋ฆฌ
์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ๋ง์ง๋ง 13๋ฒ์งธ ์ซ์๊ฐ ๋ฐ๋ก ์ด ๋ฒํธ์ ์ ํจ์ฑ์ ๊ฒฐ์ ํ๋ **๊ฒ์ฆ๋ฒํธ(Check Digit)**์ ๋๋ค. ์ด ์ซ์๋ ์์ 12์๋ฆฌ ์ซ์๋ฅผ ์ด์ฉํ์ฌ ํน์ ํ ๊ณต์์ ์ํด ๊ณ์ฐ๋ฉ๋๋ค. ์ด ๊ณต์์ ๋จ์ํ ์คํ๋ ์๋ชป๋ ์ ๋ ฅ์ ์ฆ์ ๊ฑธ๋ฌ๋ด๊ธฐ ์ํ ์ํ์ ์ธ ์์ ์ฅ์น์ ๋๋ค.
๊ฒ์ฆ๋ฒํธ๋ฅผ ๊ณ์ฐํ๋ ๊ณต์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ 12์๋ฆฌ ์ซ์($D_1, D2, \dots, D{12}$)์ ๊ฐ๊ฐ ์ ํด์ง ๊ฐ์ค์น๋ฅผ ๊ณฑํฉ๋๋ค.
- ๊ฐ์ค์น๋ $W = (2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5)$ ์์์ ๋๋ค.
- ๊ฐ ์๋ฆฌ์ ๊ฐ์ค์น๋ฅผ ๊ณฑํ ๊ฐ์ ๋ชจ๋ ๋ํฉ๋๋ค. (์ดํฉ $S$)
$$S = \sum_{i=1}^{12} (D_i \times W_i)$$ - ์ดํฉ $S$๋ฅผ 11๋ก ๋๋๋๋ค. ($S \div 11$)
- ๋๋จธ์ง($R = S \pmod{11}$)๋ฅผ ๊ตฌํฉ๋๋ค.
- 11์์ ๋๋จธ์ง๋ฅผ ๋บ ๊ฐ($K = 11 – R$)์ด ๊ฒ์ฆ ๊ฐ์ด ๋ฉ๋๋ค.
- ๋ง์ฝ $K$๊ฐ ๋ ์๋ฆฌ ์ซ์(10 ๋๋ 11)์ธ ๊ฒฝ์ฐ, $K$๋ฅผ ๋ค์ 10์ผ๋ก ๋๋ ๋๋จธ์ง ๊ฐ($K \pmod{10}$)์ ์ต์ข
๊ฒ์ฆ๋ฒํธ๋ก ์ฌ์ฉํฉ๋๋ค.
- $11 – R = 10 \rightarrow$ ๊ฒ์ฆ๋ฒํธ๋ $0$
- $11 – R = 11 \rightarrow$ ๊ฒ์ฆ๋ฒํธ๋ $1$
- $K$๊ฐ 1์๋ฆฌ ์ซ์(0~9)์ด๋ฉด, $K$ ์์ฒด๊ฐ ๊ฒ์ฆ๋ฒํธ์ ๋๋ค.
์ด ์ต์ข ๊ฒ์ฆ๋ฒํธ($K$์ ๊ฒฐ๊ณผ)๊ฐ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ 13๋ฒ์งธ ์ซ์์ ์ผ์นํด์ผ๋ง ์ ํจํ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ํ์์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ: ์จ๋ผ์ธ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ์ ํจ์ฑ ๊ฒ์ฆ ์๋น์ค ํ์ฉ
๋ง์ฝ ์ง์ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ฑฐ๋ ๋ณต์กํ ๊ณต์ ๊ณ์ฐ์ ์ํ์ง ์๋๋ค๋ฉด, ์ด๋ฏธ ์ด๋ฌํ ๋ก์ง์ ๊ตฌํํ์ฌ ์ ๊ณตํ๋ ์จ๋ผ์ธ ์ ํจ์ฑ ๊ฒ์ฆ ์๋น์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฝ๊ณ ๋น ๋ฆ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ๊ธฐ์ ์ ์ธ ์ง์์ด ์ ํ ํ์ํ์ง ์์ ์ด๋ณด์์๊ฒ ์ต์ ์ ํด๊ฒฐ์ฑ ์ ๋๋ค.
์ฃผ์ ์๋น์ค ์๊ฐ ๋ฐ ์ ๊ทผ ๋ฐฉ๋ฒ
์ธํฐ๋ท ๊ฒ์ ์์ง์ “์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ์ ํจ์ฑ ๊ฒ์ฌ” ๋๋ “์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธํ์ธํ๋ก๊ทธ๋จ” ๋ฑ์ ํค์๋๋ฅผ ์ ๋ ฅํ๋ฉด, ๊ฐ์ธ์ ๋ณด๋ฅผ ์์งํ์ง ์๊ณ ์์ํ๊ฒ ๊ฒ์ฆ ๋ก์ง๋ง ์ํํ๋ ๋ค์ํ ์น์ฌ์ดํธ๋ ๋๊ตฌ๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
- ์น ๊ธฐ๋ฐ ๊ฒ์ฆ ๋๊ตฌ: ์ฌ์ฉ์๊ฐ 13์๋ฆฌ ์ซ์๋ฅผ ์ ๋ ฅํ๋ฉด, ํด๋น ์น์ฌ์ดํธ์ ๊ตฌํ๋ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ๋ฑ์ ์คํฌ๋ฆฝํธ๊ฐ ์์์ ์ค๋ช ํ ๊ฒ์ฆ๋ฒํธ ๊ณต์์ ์ฆ์ ์ ์ฉํ์ฌ ์ ํจ์ฑ ์ฌ๋ถ(์ ํจํจ/์ ํจํ์ง ์์)๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํด ์ค๋๋ค.
- ์์ (Excel) ๋ฑ ์คํ๋ ๋์ํธ ํ์ฉ: ์ผ๋ถ ๊ธฐ์ ์ด๋ ๊ฐ์ธ์ด ์์ ์ ๋งคํฌ๋ก๋ ํจ์ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ํด๋น ๊ฒ์ฆ ๋ก์ง์ ๊ตฌํํ ํ์ผ์ ๊ณต์ ํ๊ธฐ๋ ํฉ๋๋ค. ๋๋์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ๋ ์ ์ฉํฉ๋๋ค.
์ฌ์ฉ ์ ์ฃผ์์ฌํญ ๋ฐ ๋ณด์ ๋ฌธ์
์จ๋ผ์ธ ์๋น์ค๋ฅผ ์ด์ฉํ ๋๋ ๋ช ๊ฐ์ง ์ค์ํ ์ฃผ์์ฌํญ์ ๋ฐ๋์ ์ผ๋์ ๋์ด์ผ ํฉ๋๋ค.
- ์ค์ ๊ฐ์ธ์ ๋ณด ๋ ธ์ถ ์ํ ๋ฐฉ์ง: ์ ๋ ๊ฐ์ธ์ ์ค๋ช ์ด๋ ์ค์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๋ฅผ ์๊ตฌํ๋ ์๋น์ค๋ ์ด์ฉํ์ง ์์์ผ ํฉ๋๋ค. ์ ํจ์ฑ ๊ฒ์ฌ๋ ๋ฒํธ์ ํ์์ ์ธ ๊ท์น๋ง ํ์ธํ๋ ๊ฒ์ด๋ฏ๋ก, ๋ฒํธ ์ธ์ ๋ค๋ฅธ ๊ฐ์ธ์ ๋ณด๋ ํ์ํ์ง ์์ต๋๋ค. ์ ๋ขฐํ ์ ์๋ ์ถ์ฒ์ ์น์ฌ์ดํธ์๋ ์ค์ ๋ฒํธ๋ฅผ ์ ๋ ฅํ์ง ์๋๋ก ํฉ๋๋ค.
- ๊ฒ์ฆ์ ํ๊ณ ์ธ์ง: ์ด ํ๋ก๊ทธ๋จ์ ๋ฒํธ์ ํ์์ ์ธ ์ ํจ์ฑ๋ง์ ๊ฒ์ฌํ ๋ฟ, ํด๋น ๋ฒํธ๊ฐ ์ค์ ๋ก ์กด์ฌํ๋ ์ฌ๋์ ๋ฒํธ์ธ์ง๋ ํ์ธํ ์ ์์ต๋๋ค. ์ด ์ ์ ํผ๋ํด์๋ ์ ๋ฉ๋๋ค. ์ค์ ๋ก ์กด์ฌํ๋ ๋ฒํธ๋ ์ค์ง ์ ๋ถ ๊ธฐ๊ด์ ํ์ ์์คํ ์ ํตํด์๋ง ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ์ ํตํ ์ง์ ํ์ธ (Python ์์)
๊ฐ๋ฐ์์ด๊ฑฐ๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ ๋ฌด๋ฅผ ํ๋ ๊ฒฝ์ฐ, ๋๋์ ๋ฐ์ดํฐ์ ์ผ๊ด์ ์ผ๋ก ์ ์ฉํ๊ธฐ ์ํด ์ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ฆ ๋ก์ง์ ๊ตฌํํ๋ ๊ฒ์ด ๊ฐ์ฅ ํจ์จ์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฐฐ์ฐ๊ธฐ ์ฝ๊ณ ๋๋ฆฌ ์ฌ์ฉ๋๋ **ํ์ด์ฌ(Python)**์ ์์๋ก ๋ค์ด ์ค๋ช ํฉ๋๋ค.
๊ฒ์ฆ ๋ก์ง์ ์ดํด: ๊ณต์ ๋์ ๋ฒ
ํ๋ก๊ทธ๋จ ๊ตฌํ์ ํต์ฌ์ ์์์ ์ค๋ช ํ ๊ฐ์ค์น์ 11๋ก ๋๋๋ ๊ณต์์ ๊ทธ๋๋ก ์ฝ๋๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค.
- ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ 13์๋ฆฌ ์ค ์ 12์๋ฆฌ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค.
- ๊ฐ ์๋ฆฟ์์ ์ ํด์ง ๊ฐ์ค์น $(2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5)$๋ฅผ ๊ณฑํฉ๋๋ค.
- ๊ณฑ์ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ ๋ํฉ๋๋ค($S$).
- $S \pmod{11}$์ ๋๋จธ์ง $R$์ ๊ตฌํฉ๋๋ค.
- $11 – R$์ ๊ฒฐ๊ณผ $K$๋ฅผ ๊ตฌํ๊ณ , $K \pmod{10}$์ ๊ฐ์ด ์ต์ข ๊ฒ์ฆ๋ฒํธ๊ฐ ๋ฉ๋๋ค.
- ์ต์ข ๊ฒ์ฆ๋ฒํธ์ ์ ๋ ฅ๋ ๋ฒํธ์ 13๋ฒ์งธ ์๋ฆฌ๋ฅผ ๋น๊ตํฉ๋๋ค.
ํ์ด์ฌ(Python)์ ํ์ฉํ ๊ตฌํ ์ฝ๋ ๋ฐ ์ค๋ช
ํ์ด์ฌ์ ๋ฌธ์์ด ์ฒ๋ฆฌ์ ๋ฆฌ์คํธ, ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ฉด ์ด ๋ก์ง์ ๋งค์ฐ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค.
def check_resident_id(reg_no):
# ์
๋ ฅ๋ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์์ ํ์ดํ(-)์ ์ ๊ฑฐํ๊ณ , 13์๋ฆฌ์ธ์ง ํ์ธ
reg_no = reg_no.replace('-', '')
if len(reg_no) != 13 or not reg_no.isdigit():
return False, "์ ํจํ์ง ์์ ํ์์
๋๋ค. (13์๋ฆฌ ์ซ์๊ฐ ์๋)"
# 1. ๊ฐ์ค์น ์ค์ (2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5)
weights = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
# 2. 12์๋ฆฌ ์ซ์ ์ถ์ถ ๋ฐ ๊ฐ์ค์น ๊ณฑ์
, ํฉ์ฐ
sum_val = 0
for i in range(12):
# i๋ฒ์งธ ์๋ฆฟ์(๋ฌธ์)๋ฅผ ์ ์ํ์ผ๋ก ๋ณํํ์ฌ ๊ฐ์ค์น์ ๊ณฑํจ
sum_val += int(reg_no[i]) * weights[i]
# 3. ์ดํฉ์ 11๋ก ๋๋ ๋๋จธ์ง R
remainder = sum_val % 11
# 4. 11์์ ๋๋จธ์ง๋ฅผ ๋บ ๊ฐ K
k_value = 11 - remainder
# 5. K๊ฐ์ 10์ผ๋ก ๋๋ ๋๋จธ์ง(K mod 10)๊ฐ ์ต์ข
๊ฒ์ฆ๋ฒํธ
check_digit_calculated = k_value % 10
# 6. ์
๋ ฅ๋ ๋ฒํธ์ 13๋ฒ์งธ ์๋ฆฌ์ ๊ณ์ฐ๋ ๊ฒ์ฆ๋ฒํธ ๋น๊ต
check_digit_input = int(reg_no[12])
if check_digit_input == check_digit_calculated:
return True, "์ ํจํ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ํ์์
๋๋ค."
else:
return False, "๊ฒ์ฆ๋ฒํธ ๋ถ์ผ์น๋ก ์ ํจํ์ง ์์ ํ์์
๋๋ค."
์ค์ ์ฝ๋ ์์์ ์คํ ๊ฒฐ๊ณผ
์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ๋ฒํธ๋ฅผ ํ ์คํธํด๋ณผ ์ ์์ต๋๋ค. (์์ ๋ฒํธ๋ ๊ฐ์์ ๋ฒํธ์ ๋๋ค.)
| ์ ๋ ฅ ๋ฒํธ | ๊ณ์ฐ๋ ๊ฒ์ฆ๋ฒํธ | ์ ๋ ฅ๋ ๊ฒ์ฆ๋ฒํธ | ๊ฒฐ๊ณผ |
|---|---|---|---|
| 900301-1234567 | 7 | 7 | ์ ํจํจ |
| 900301-1234568 | 7 | 8 | ๋ถ์ผ์น (์ ํจํ์ง ์์) |
| 991231-2987654 | 4 | 4 | ์ ํจํจ |
์ฝ๋๋ ์ 12์๋ฆฌ ์ซ์์ ๊ฐ์ค์น๋ฅผ ๊ณฑํ๊ณ ๋ํ๋ ๊ณผ์ ์ ๋ฐ๋ณต๋ฌธ(for i in range(12):)์ผ๋ก ์ฒ๋ฆฌํ๋ฉฐ, ์ต์ข
์ ์ผ๋ก ๊ณ์ฐ๋ ๊ฐ๊ณผ ์
๋ ฅ๋ 13๋ฒ์งธ ์๋ฆฌ๋ฅผ ๋น๊ตํ์ฌ ์ ํจ์ฑ ์ฌ๋ถ๋ฅผ **Boolean ๊ฐ(True/False)**๊ณผ ํจ๊ป ๋ฐํํฉ๋๋ค. ์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฒ, ์๋ง ๊ฐ์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ๋ฐ์ดํฐ์ ๋ํด์๋ ๋งค์ฐ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ์ ํจ์ฑ ๊ฒ์ฆ์ ์ํํ ์ ์์ต๋๋ค.
๋ง์น๋ฉฐ: ์์ ํ๊ณ ์ ํํ ์ ๋ณด ํ์ฉ์ ์ค์์ฑ
**”์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธํ์ธํ๋ก๊ทธ๋จ”**์ ๋ณต์กํ ํ์ ์ ์ฐจ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ์ดํฐ์ ํ์์ ์ค๋ฅ๋ฅผ ๊ฑธ๋ฌ๋ด๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค. ์ด ๊ธ์์ ์ ์ํ ์จ๋ผ์ธ์ ํตํ ๋งค์ฐ ์ฌ์ด ๋ฐฉ๋ฒ๋ถํฐ, ํ์ด์ฌ์ ์ด์ฉํ ์ง์ ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ๊ตฌํ๊น์ง, ์ฌ์ฉ์์ ์ํฉ๊ณผ ํ์์ ๋ง๊ฒ ๊ฐ์ฅ ์ ์ ํ ๋ฐฉ๋ฒ์ ์ ํํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ ๋ณด์ ์์ ํ ํ์ฉ์ ๋๋ค. ๊ฒ์ฆ์ ๋ชฉ์ ์ด ๋ถ๋ฒ์ ์ธ ์ ๋ณด ์ทจ๋์ด๋ ์ค์ฉ์ด ๋์ด์๋ ์ ๋๋ฉฐ, ์ด ๋๊ตฌ๋ ์ด๋๊น์ง๋ ๋ฐ์ดํฐ์ ํ์ง ๊ด๋ฆฌ์ ์ค๋ฅ ์๋ฐฉ์ ๋ชฉ์ ์ผ๋ก๋ง ํ์ฉ๋์ด์ผ ํจ์ ๋ช ์ฌํด์ผ ํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ฅผ ํตํด ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ์จ๊ฒจ์ง ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ณ , ์ ํจ์ฑ ๊ฒ์ฆ์ ์์ฝ๊ฒ ์ํํ์ฌ ์์ ํ๊ณ ์ ํํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.