[Level 1] μ κ· μμ΄λ μΆμ²
Algorithm
- μ κ· μμ΄λ μΆμ² -
λ¬Έμ
μΉ΄μΉ΄μ€μ μ μ¬μ μ μ κ°λ°μ "λ€μ€"λ "μΉ΄μΉ΄μ€κ³μ κ°λ°ν"μ λ°°μΉλμ΄, μΉ΄μΉ΄μ€ μλΉμ€μ κ°μ νλ μ μ λ€μ μμ΄λλ₯Ό μμ±νλ μ 무λ₯Ό λ΄λΉνκ² λμμ΅λλ€.
"λ€μ€"μκ² μ£Όμ΄μ§ 첫 μ 무λ μλ‘ κ°μ νλ μ μ λ€μ΄ μΉ΄μΉ΄μ€ μμ΄λ κ·μΉμ λ§μ§ μλ μμ΄λλ₯Ό μ λ ₯νμλ, μ λ ₯λ μμ΄λμ μ μ¬νλ©΄μ κ·μΉμ λ§λ μμ΄λλ₯Ό μΆμ²ν΄μ£Όλ νλ‘κ·Έλ¨μ κ°λ°νλ κ²μ λλ€.
- μμ΄λμ κΈΈμ΄λ 3μ μ΄μ 15μ μ΄νμ¬μΌ ν©λλ€.
- μμ΄λλ μνλ²³ μλ¬Έμ, μ«μ, λΉΌκΈ°(-), λ°μ€(_), λ§μΉ¨ν(.) λ¬Έμλ§ μ¬μ©ν μ μμ΅λλ€.
- λ¨, λ§μΉ¨ν(.)λ μ²μκ³Ό λμ μ¬μ©ν μ μμΌλ©° λν μ°μμΌλ‘ μ¬μ©ν μ μμ΅λλ€.
"λ€μ€"λ λ€μκ³Ό κ°μ΄ 7λ¨κ³μ μμ°¨μ μΈ μ²λ¦¬ κ³Όμ μ ν΅ν΄ μ κ· μ μ κ° μ λ ₯ν μμ΄λκ° μΉ΄μΉ΄μ€ μμ΄λ κ·μΉμ λ§λ μ§ κ²μ¬νκ³ κ·μΉμ λ§μ§ μμ κ²½μ° κ·μΉμ λ§λ μλ‘μ΄ μμ΄λλ₯Ό μΆμ²ν΄μ£Όλ €κ³ ν©λλ€.
μ κ· μ μ κ° μ λ ₯ν μμ΄λκ° new_id λΌκ³ νλ€λ©΄,
1λ¨κ³ > new_idμ λͺ¨λ λλ¬Έμλ₯Ό λμλλ μλ¬Έμλ‘ μΉνν©λλ€.
2λ¨κ³ > new_idμμ μνλ²³ μλ¬Έμ, μ«μ, λΉΌκΈ°(-), λ°μ€(_), λ§μΉ¨ν(.)λ₯Ό μ μΈν λͺ¨λ λ¬Έμλ₯Ό μ κ±°ν©λλ€.
3λ¨κ³ > new_idμμ λ§μΉ¨ν(.)κ° 2λ² μ΄μ μ°μλ λΆλΆμ νλμ λ§μΉ¨ν(.)λ‘ μΉνν©λλ€.
4λ¨κ³ > new_idμμ λ§μΉ¨ν(.)κ° μ²μμ΄λ λμ μμΉνλ€λ©΄ μ κ±°ν©λλ€.
5λ¨κ³ > new_idκ° λΉ λ¬Έμμ΄μ΄λΌλ©΄, new_idμ "a"λ₯Ό λμ ν©λλ€.
6λ¨κ³ > new_idμ κΈΈμ΄κ° 16μ μ΄μμ΄λΌλ©΄, new_idμ 첫 15κ°μ λ¬Έμλ₯Ό μ μΈν λλ¨Έμ§ λ¬Έμλ€μ λͺ¨λ μ κ±°ν©λλ€.
λ§μ½ μ κ±° ν λ§μΉ¨νκ°(.) new_idμ λμ μμΉνλ€λ©΄ λμ μμΉν λ§μΉ¨ν(.) λ¬Έμλ₯Ό μ κ±°ν©λλ€.
7λ¨κ³ > new_idμ κΈΈμ΄κ° 2μ μ΄νλΌλ©΄, new_idμ λ§μ§λ§ λ¬Έμλ₯Ό new_idμ κΈΈμ΄κ° 3μ΄ λ λκΉμ§ λ°λ³΅ν΄μ λμ λΆμ λλ€.
μ κ· μ μ κ° μ λ ₯ν μμ΄λλ₯Ό λνλ΄λ new_idκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, "λ€μ€"κ° μ€κ³ν 7λ¨κ³μ μ²λ¦¬ κ³Όμ μ κ±°μΉ νμ μΆμ² μμ΄λλ₯Ό return νλλ‘ solutionν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
- new_idμ λνλ μ μλ νΉμλ¬Έμλ -_.~!@#$%^&*()=+[{]}:?,<>/ λ‘ νμ λ©λλ€.
μ μΆλ ₯ μμ
no | new_id | result |
μ1 | "...!@BaT#*..y.abcdefghijklm" | "bat.y.abcdefghi" |
μ2 | "=.=" | "aaa" |
λ¬Έμ νκΈ°
μμ°! μ΄λ² λ¬Έμ λ νΈλλ° μκ°μ΄ κ½€ 걸리기λ νμ§λ§ ν μ€νΈλ₯Ό νλμ© μ§νν΄ λ³Έλ€κ³ μκ°μ΄ λ μ€λ κ±Έλ¦°κ² κ°λ€.
μλλ solutionν¨μ μμ λͺ¨λ κ²μ λ€ μ§νμ ν΄λ³΄λ €κ³ νμΌλ κ·Έλ¬λ©΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ°μ μ κ°λ μ±μ΄ λ무 μμ’κ³ μ½λκ° λ§μ΄ λλ¬μ μ§ κ² κ°μμ μ΄ 7λ¨κ³λ₯Ό μ§νν΄μΌ νλ κ°κ°μ νμ΄ λ°©λ²μ ν ν¨μμ λ£μ΄μ solutionμμλ ν¨μλ₯Ό μ€νμν€λ λ°©μμΌλ‘ λ¬Έμ λ₯Ό ν΄κ²°ν΄ 보μλ€.
κ·Έλ¦¬κ³ μ½λμ μμ΄ μλΉνλ€λ³΄λ νμ΄ν ν¨μλ₯Ό μ¬μ©ν΄μ μ½νλλ°μλ νΈνκ³ μ½λμ μμ μ‘°κΈμ΄λΌλ μ€μ¬λ³΄κ³ μ λ Έλ ₯μ ν΄λ³΄μλ€.
λ¨κ³λ³λ‘ νλμ© κ°λ¨νκ² μ€λͺ ν΄λ³΄μλ©΄, λ¨Όμ 1λ¨κ³μμλ idμμ μμ λλ¬Έμλ₯Ό μλ¬Έμλ‘ λ°κΏμ€μΌνλ toLowerCase()λ₯Ό μ¬μ©ν΄μ λͺ¨λ λ¬Έμλ₯Ό μλ¬Έμλ‘ μΉνν΄μ£Όμλ€.
2λ¨κ³μμλ νΉμ λ¬Έμλ₯Ό μ μΈν λλ¨Έμ§ λ¬Έμλ μ μΈμμΌμΌνκΈ° λλ¬Έμ μΌλ¨ μ μΈν΄μΌν λ¬Έμλ€μ νκ³³μ λ΄μλ λ€μμ filterλ₯Ό μ¬μ©ν΄μ ν΄λΉ λ¬Έμλ€μ΄ μλ λλ¨Έμ§ λ¬Έμλ€λ§ 리ν΄λ μ μλλ‘ μ€μ ν΄ μ£Όμλ€.
κ·Έλ¦¬κ³ filterλ₯Ό μ¬μ©νκΈ° μν΄μ λ°°μ΄μ μ΄μ©ν΄μΌνκΈ° λλ¬Έμ splitμΌλ‘ μͺΌκ° λ€μ joinμΌλ‘ λ€μ ν©μΉλ κ³Όμ λ μμ§ μμλ€.
3λ¨κ³μμλ λ§μΉ¨νκ° 2λ²μ΄μ λ°λ³΅λ ꡬκ°μ 1κ°λ‘ μΉννλ κ²μΌλ‘ μμ μ μ΄λ° λΉμ·ν λ¬Έμ λ₯Ό νμ΄λ³΄μκΈ° λλ¬Έμ κ·Έμ μ νμλ λ°©μκ³Ό λΉμ·ν λ°©μμΌλ‘ λ¬Έμ λ₯Ό ν΄κ²°ν΄μ£Όμλ€.
4λ¨κ³μμλ λ§μΉ¨νκ° μ²μμ΄λ λμ μμ κ²½μ°μ μ κ±°ν΄μ£Όλ κ²μΌλ‘ 쑰건문μ μ¬μ©ν΄ 쑰건μ μ±λ¦½λλ κ²μ λ°λΌ λ§μΆ°μ€μ κ°λ€μ΄ 리ν΄λ μ μλλ‘ μ€μ ν΄ μ£Όμλ€.
5λ¨κ³ μμλ λΉλ¬Έμμ΄μΌλ 'a'λ₯Ό λ£λ κ²μΌλ‘ μΌνμ°μ°μλ₯Ό μ΄μ©ν΄μ 맀κ°λ³μλ‘ λ°μ λ¬Έμμ΄μ κΈΈμ΄κ° 0μΌλ 'a'λ₯Ό λ£μ΄μ£Όλ κ²μΌλ‘ ν΄κ²°ν΄ μ£Όμλ€.
6λ¨κ³μμλ λ¬Έμμ΄μ κΈΈμ΄κ° 16μ μ΄μμ 15κ°λ₯Ό μ μΈν λλ¨Έμ§λ₯Ό μμ ν΄μ£Όλ, μ΄νμ λ§μ§λ§μ λ§μΉ¨νκ° μμΌλ©΄ ν΄λΉ λ§μΉ¨νλ μμ ν΄μ£Όλ κ²μΌλ‘ λ§μ°¬κ°μ§κ³ 쑰건문μ μ¬μ©ν΄μ μ½λλ₯Ό μμ±ν΄ μ£Όμλ€.
λ§μ§λ§ 7λ¨κ³λ λ¬Έμμ΄μ κΈΈμ΄κ° 2μ μ΄νμΌ κ²½μ°μ λ§μ§λ§ λ¬Έμλ₯Ό κΈΈμ΄κ° 3μ΄ λ λκΉμ§ λ°λ³΅νλλ‘ λ°λ³΅λΆ whileμ μ¬μ©ν΄μ λ¬Έμ λ₯Ό ν΄κ²°ν΄μ£Όμλ€.
μ¬μ€ μ’λ λ Έλ ₯νλ©΄ μ½λμ κΈΈμ΄λ₯Ό μ€μΌ μ μμκ² κ°κΈ΄νλ° κ·Έλ κ² λλ©΄ κ°λ μ±μ΄ μμ² λ¨μ΄μ§κ² κ°μμ μ¬κΈ°μ λ§λ¬΄λ¦¬ μ§μ΄μΌκ² λ€ γ γ γ