[νλ‘κ·Έλλ¨Έμ€] μ κ· μμ΄λ μΆμ²
https://programmers.co.kr/learn/courses/30/lessons/72410
λ¬Έμ μ€λͺ
μΉ΄μΉ΄μ€μ μ
μ¬ν μ μ
κ°λ°μ λ€μ€λ "μΉ΄μΉ΄μ€κ³μ κ°λ°ν"μ λ°°μΉλμ΄, μΉ΄μΉ΄μ€ μλΉμ€μ κ°μ
νλ μ μ λ€μ μμ΄λλ₯Ό μμ±νλ μ
무λ₯Ό λ΄λΉνκ² λμμ΅λλ€. "λ€μ€"μκ² μ£Όμ΄μ§ 첫 μ
무λ μλ‘ κ°μ
νλ μ μ λ€μ΄ μΉ΄μΉ΄μ€ μμ΄λ κ·μΉμ λ§μ§ μλ μμ΄λλ₯Ό μ
λ ₯νμ λ, μ
λ ₯λ μμ΄λμ μ μ¬νλ©΄μ κ·μΉμ λ§λ μμ΄λλ₯Ό μΆμ²ν΄μ£Όλ νλ‘κ·Έλ¨μ κ°λ°νλ κ²μ
λλ€.
λ€μμ μΉ΄μΉ΄μ€ μμ΄λμ κ·μΉμ
λλ€.
μμ΄λμ κΈΈμ΄λ 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 κ°μ΄ "...!@BaT#*..y.abcdefghijklm" λΌλ©΄, μ 7λ¨κ³λ₯Ό κ±°μΉκ³ λλ©΄ new_idλ μλμ κ°μ΄ λ³κ²½λ©λλ€.
1λ¨κ³ λλ¬Έμ 'B'μ 'T'κ° μλ¬Έμ 'b'μ 't'λ‘ λ°λμμ΅λλ€.
"...!@BaT#..y.abcdefghijklm" β "...!@bat#..y.abcdefghijklm"
2λ¨κ³ '!', '@', '#', '' λ¬Έμκ° μ κ±°λμμ΅λλ€.
"...!@bat#..y.abcdefghijklm" β "...bat..y.abcdefghijklm"
3λ¨κ³ '...'μ '..' κ° '.'λ‘ λ°λμμ΅λλ€.
"...bat..y.abcdefghijklm" β ".bat.y.abcdefghijklm"
4λ¨κ³ μμ΄λμ μ²μμ μμΉν '.'κ° μ κ±°λμμ΅λλ€.
".bat.y.abcdefghijklm" β "bat.y.abcdefghijklm"
5λ¨κ³ μμ΄λκ° λΉ λ¬Έμμ΄μ΄ μλλ―λ‘ λ³νκ° μμ΅λλ€.
"bat.y.abcdefghijklm" β "bat.y.abcdefghijklm"
6λ¨κ³ μμ΄λμ κΈΈμ΄κ° 16μ μ΄μμ΄λ―λ‘, μ²μ 15μλ₯Ό μ μΈν λλ¨Έμ§ λ¬Έμλ€μ΄ μ κ±°λμμ΅λλ€.
"bat.y.abcdefghijklm" β "bat.y.abcdefghi"
7λ¨κ³ μμ΄λμ κΈΈμ΄κ° 2μ μ΄νκ° μλλ―λ‘ λ³νκ° μμ΅λλ€.
"bat.y.abcdefghi" β "bat.y.abcdefghi"
λ°λΌμ μ κ· μ μ κ° μ λ ₯ν new_idκ° "...!@BaT#*..y.abcdefghijklm"μΌ λ, λ€μ€μ νλ‘κ·Έλ¨μ΄ μΆμ²νλ μλ‘μ΄ μμ΄λλ "bat.y.abcdefghi" μ λλ€.
μ νμ¬ν
new_idλ κΈΈμ΄ 1 μ΄μ 1,000 μ΄νμΈ λ¬Έμμ΄μ
λλ€.
new_idλ μνλ²³ λλ¬Έμ, μνλ²³ μλ¬Έμ, μ«μ, νΉμλ¬Έμλ‘ κ΅¬μ±λμ΄ μμ΅λλ€.
new_idμ λνλ μ μλ νΉμλ¬Έμλ -_.~!@#$%^&*()=+[{]}:?,<>/ λ‘ νμ λ©λλ€.
Code
class Solution {
public String solution(String new_id) {
String step1 = new_id.toLowerCase(); //1λ¨κ³
String step2 = new String(); //2λ¨κ³
for(int i = 0; i<step1.length(); i++){
char tmp = step1.charAt(i);
if((tmp>='a'&&tmp<='z')||(tmp>='0'&&tmp<='9')||tmp=='-'||tmp=='_'||tmp=='.')
step2+= Character.toString(tmp);
}
String step3 = step2.replaceAll("[.]{2,}","."); //3λ¨κ³
String step4 = new String(); //4λ¨κ³
if(step3.charAt(0)=='.') step3 = step3.substring(1,step3.length());
if(step3.length()!=0){
if(step3.charAt(step3.length()-1)=='.') step3 = step3.substring(0,step3.length()-1);
}
step4 = step3;
String step5 = step4; //5λ¨κ³
if(step4.length()==0) step5 = "a";
String step6 = step5; //6λ¨κ³
if(step5.length()>15){
step6 = step5.substring(0,15);
if(step6.charAt(step6.length()-1)=='.') step6 = step6.substring(0,step6.length()-1);
}
String step7 = step6; //7λ¨κ³
while(step7.length()<3){
step7+= Character.toString(step7.charAt(step7.length()-1));
}
return step7;
}
}
Code μ€λͺ
λ¬Έμ μ€λͺ
μ μλ 1~7λ¨κ³λ₯Ό κ·Έλλ‘ κ΅¬ννλ €κ³ νλ€.
κ°κ° λ¨κ³λ§λ€ String λ³μλ₯Ό μ μΈν΄μ£Όμ΄μ λ¨κ³μ λ§λ μ²λ¦¬λ₯Ό ν΄μ£Όμλ€.
λ°°μ΄μ
λ¬Έμμ΄μ μλ¬Έμλ‘ λ°κΎΈλ toLowerCase()ν¨μμ λλ¬Έμλ‘ λ°κΎΈλ toUpperCase()ν¨μλ₯Ό μ¬μ©νλ€.
κ·Έλ¦¬κ³ 2λ¨κ³μμ Stringμ charμ λν΄μ£ΌκΈ° μν΄μ charμ StringμΌλ‘ λ°κΏμ£Όλ Character.toString(char) ν¨μλ₯Ό μ¬μ©νλ€.
κ·Έλ¦¬κ³ λ€λ₯Έ μ¬λμ νμ΄λ₯Ό ν΅ν΄μ μ κ·ννμμ΄λΌλ κ²μ μκ²λμκ³ κ΅μ₯ν κΈ΄ μ½λκ° μ§§κ² λ³νλκ²μ 보μλ€.
μ κ·ννμμ μ¬μ©ν Code
class Solution {
public String solution(String new_id) {
String answer = "";
String temp = new_id.toLowerCase();
temp = temp.replaceAll("[^-_.a-z0-9]","");
System.out.println(temp);
temp = temp.replaceAll("[.]{2,}",".");
temp = temp.replaceAll("^[.]|[.]$","");
System.out.println(temp.length());
if(temp.equals(""))
temp+="a";
if(temp.length() >=16){
temp = temp.substring(0,15);
temp=temp.replaceAll("^[.]|[.]$","");
}
if(temp.length()<=2)
while(temp.length()<3)
temp+=temp.charAt(temp.length()-1);
answer=temp;
return answer;
}
}
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Algorithm/JAVA][νλ‘κ·Έλλ¨Έμ€] μ€ν¨μ¨ (0) | 2021.09.04 |
---|---|
[Algorithm/Java][νλ‘κ·Έλλ¨Έμ€] μ§μ κ΅° μΆμ²νκΈ° (0) | 2021.08.27 |
[Algorithm/Java][νλ‘κ·Έλλ¨Έμ€] λ€νΈ κ²μ (0) | 2021.07.23 |
[Algoritm/Java][νλ‘κ·Έλλ¨Έμ€] μμ° (0) | 2021.07.23 |
[Algorithm/Java][νλ‘κ·Έλλ¨Έμ€] λ‘λμ μ΅κ³ μμμ μ΅μ μμ (0) | 2021.07.20 |