-
10. ์ ํ๋ฒํธ ์ ์ฒ๋ฆฌ
์ ์ฒ๋ฆฌ! python์ ์ ๊ท ํํ์์ ์ฌ์ฉํด์ ํ๋ฉด ๋๋ ๋ฌธ์ ์๋ค. ์ฒ์ python์ ๋ฐฐ์ธ ๋, ์ ๊ท ํํ์์ ์๋ฐฐ์ฐ๊ณ ๋์ด๊ฐ์ด์์ ์๋ฌด ์๊ฐ์์ด C์ฒ๋ผ ํ์๋ค๊ฐ, ๋ญ๊ฐ ์ด๊ฑด ๋๋ฌด ์๋๊ฑฐ ๊ฐ์์ ์ฐพ์๋ณด๋ค๊ฐ ์ ๊ท ํํ์์ ์๊ฒ ๋์๋ค.
๋ค๋ฅธ ์ฌ์ดํธ๋ค์ ๋ค์ ธ๊ฐ๋ฉด์ ์ ๊ท ํํ์์ ์ ๋ฆฌํด๋ดค๋ค.
2020/02/25 - [Etc] - python ์ ๊ท ํํ์ ๋ด๋ง๋๋ก ์ ๋ฆฌ
์ผ๋จ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
import re p = re.compile(r'(0?10)[-]?(\d{4})[-]?(\d{4})') number = input() m = p.search(number) if m==None: print("ERROR!") else: if m.group(1)=='10': print("0{}{}{}".format(m.group(1), m.group(2), m.group(3))) else: print("{}{}{}".format(m.group(1), m.group(2), m.group(3)))
๋จผ์ ์ ๊ท ํํ์์ ํ์ํ re๋ฅผ importํ๋ค.
๊ทธ ๋ค, ํจํด์ ์ง๋๋ฐ 010์์ 10์ ๋ฌด์กฐ๊ฑด ๋ค์ด๊ฐ๋ฏ๋ก ์ฒ์์ 0์ ์์ด๋ ๋๊ณ ์์ด๋ ๋๋ ?๋ฅผ ๋ถ์ฌ ์ฃผ์๊ณ , ๊ทธ ๋ค์๋ 10์ ๊ทธ๋๋ก ํ๊ธฐํ๋ค.
(01x๋ฒํธ๋ ์ด์ ์ฌ๋ผ์ก์ผ๋๊นใ ใ )๋ฒํธ ์ฌ์ด์ฌ์ด์ ๋ค์ด๊ฐ๋ - ๊ธฐํธ๋ ์์ด๋ ๋๊ณ , ์์ด๋ ๋๋ [-]? ๋ก ์ฒ๋ฆฌํ๋ค.
ํด๋ํฐ ๋ฒํธ๋ 3์๋ฆฌ, 4์๋ฆฌ, 4์๋ฆฌ์ฌ์ ๋ค์ 4์๋ฆฌ ๋๊ฐ๋ ๊ผญ ํ์ํ ์ ๋ณด๋ค. ์ฆ, ์๋ฆฌ๊ฐ 4๊ฐ๋ก ๊ณ ์ ์ด ๋์ด์๋ค. ์ซ์ 0-9๋ฅผ ๋ปํ๋ \d์ 4๋ฒ ๋ฐ๋ณต๋๋ค๋ ๋ป์ ๋ด์ {4}๋ฅผ ๋ถ์ฌ์คฌ๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ค์ ์ ๋ฆฌํ๊ธฐ ์ฝ๊ฒ 3์๋ฆฌ, 4์๋ฆฌ, 4์๋ฆฌ๋ง๋ค ๊ทธ๋ฃจํ์ ํด์คฌ๋ค.
๋ฒํธ๋ฅผ ์ ๋ ฅ ๋ฐ๊ณ ๋, ๋ง๋ค์ด๋ ํจํด์ผ๋ก ์ปดํ์ผ์ ํ๋ค. ๋ง์ฝ, ํจํด๊ณผ ์ ๋ ฅ๋ฐ์ ๋ฒํธ์ ๊ท์น์ด ๋ค๋ฅผ ๊ฒฝ์ฐ m์๋ None์ด ์ ์ฅ๋๊ฒ ๋๋ฏ๋ก if๋ฌธ์ ์ด์ฉํด์ ERROR๋ฅผ ์ถ๋ ฅํ๊ฒ ์ฒ๋ฆฌํด์คฌ๋ค.
์ฌ๋ฐ๋ฅธ ํจํด์ ๊ฐ์ง ๋ฒํธ๋ 3(๋๋ 2)์๋ฆฌ, 4์๋ฆฌ, 4์๋ฆฌ๋ก ๊ทธ๋ฃจํ๋์ด ์์ด์ ๊ทธ๋๋ก ์ถ๋ ฅํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค. ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค(010)์ ๊ฒฝ์ฐ 10์ผ์๋, 010์ผ ์๋ ์์ด์ ์ด ๋ถ๋ถ๋ง ๋ฐ๋ก ์ฒดํฌํ๋ ๋ถ๊ธฐ์ ์ ๋๋ ์ฃผ์๋ค.
์ฒ์์๋ ๋ง์ฐํ ์ ๊ท ํํ์์ด ๋ง๋งํ๋๋ฐ ๊ฐ์ก๊ณ ์ ๋ฆฌํ๋๊น ๋ค ๊ท์น์ด ์์๋ค. ์ด๊ฒ๋ ๊ฒฐ๊ตญ์๋ ๋ง์ด ์จ๋ณผ์๋ก ์ต์ํด ์ง ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ค์ ํฌ๋กค๋ง ํ ๋๋ ์ ์ฉํ๊ฒ ์ธ ์ ์์ ๊ฑฐ ๊ฐ๋ค.
'๐STUDY > ๐๋คํ (dafit.me)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DF905] 02. YYYY-MM-DD (0) 2020.02.26 [DF905] 01. Telephone Number (0) 2020.02.26 [DF913] 09. ๋ฌธ์์ด ํํฐ (0) 2020.02.11 [DF913] 08. ์ํ๋ฒณ ๋์ฝ๋ฉ (0) 2020.02.11 [DF913] 07. ๋ณ์ฐ๊ธฐ ํผํฉ (0) 2020.02.11 ๋๊ธ