- ๋ฌธ์ :
- ์์ด๋๋ฅผ ์์ฑํ ๋ ์์ด๋ ๊ท์น์ ๋ง์ง ์๋ ์์ด๋๋ฅผ ์ ๋ ฅํ๋ฉด ์ ๋ ฅ๋ ์์ด๋์ ์ ์ฌํ๋ฉด์ ๊ท์น์ ๋ง๋ ์์ด๋๋ฅผ ์ถ์ฒํด์ฃผ๋ ํ๋ก๊ทธ๋จ ์์ฑํ๊ธฐ
package org.example;
public class proPrac24 {
public String solution(String new_id) {
String answer = "";
System.out.println("1๋จ๊ณ ์์");
String new_id_1 = new_id.toLowerCase();
// 1๋จ๊ณ๋ new_id์ ๋ชจ๋ ๋๋ฌธ์๋ฅผ ๋์๋๋ ์๋ฌธ์๋ก ์นํํ๋ค.
// toLowerCase ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ด๋์ ์๋ ๋ชจ๋ ๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ๋ฐ๊พผ๋ค
System.out.println("2๋จ๊ณ ์์");
String new_id_2 = new_id_1.replaceAll("[^a-z0-9_.-]", "");
// 2๋จ๊ณ๋ new_id์์ ์๋ฌธ์, ์ซ์, ๋นผ๊ธฐ, ๋ฐ์ค, ๋ง์นจํ๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๋ค.
// replaceAllํจ์๋ฅผ ํตํด์ ์ ๊ท์ ๋ฌธ์์ ํฌํจ๋๋ ํ์์ด ์๋๊ฒฝ์ฐ ""๋ก ๋ณ๊ฒฝ(=์ ๊ฑฐ)
System.out.println("3๋จ๊ณ ์์");
String new_id_3 = new_id_2.replaceAll("[.]+", ".");
// 3๋จ๊ณ๋ ๋ง์นจํ(.)๊ฐ 2๋ฒ ์ด์ ์ฐ์๋ ๋ถ๋ถ์ ํ๋์ ๋ง์นจํ(.)๋ก ์นํํ๋ค.
// 2๋จ๊ณ์ ๋์ผํ๊ฒ replaceAllํจ์๋ฅผ ํตํด [.]+ ํ๊ฐ ๋ง์นจํ ์ด์์ผ๊ฒฝ์ฐ "."๋ก ์นํํ๋ค.
System.out.println("4๋จ๊ณ ์์");
// 4๋จ๊ณ๋ ๋ง์นจํ๊ฐ ์ฒ์์ด๋, ๋์ ์์นํ ๊ฒฝ์ฐ ์ ๊ฑฐํ๋ค
String new_id_4 = new_id_3;
if (new_id_4.endsWith(".")) {
// endsWithํจ์๋ฅผ ํตํด ๋ง์ง๋ง ๋ฌธ์์ "."๊ฐ ํฌํจ ๋์ด ์๋์ง ํ์ธํ๋ค.
// ํฌํจ๋์ด์์ผ๋ฉด true, ์๋๋ฉด False๋ฅผ ๋ฐํํ๋ค.
new_id_4 = new_id_4.substring(0, new_id_4.length() - 1);
// ํฌํจ๋์ด ์์ ๊ฒฝ์ฐ substring ํจ์๋ฅผ ํตํด 0๋ฒ์งธ๋ถํฐ new_id_4์ ๊ธธ์ด -1 ํ๋งํผ(=๋ง์ง๋ง ๋ฌธ์ ์ ์ธ)๋ง ๋ฌธ์์ด์ ์ ์ฅํ๋ค.
}
if (new_id_4.startsWith(".")) {
// endsWithํจ์๋ฅผ ํตํด ์ฒซ๋ฒ์งธ ๋ฌธ์์ "."๊ฐ ํฌํจ ๋์ด ์๋์ง ํ์ธํ๋ค.
// ํฌํจ๋์ด์์ผ๋ฉด true, ์๋๋ฉด False๋ฅผ ๋ฐํํ๋ค.
new_id_4 = new_id_4.substring(1);
// ์ฒซ๋ฒ์งธ ๊ธ์์ "."๊ฐ ํฌํจ๋์ด์์ผ๋ฉด 1๋ฒ์จฐ๋ถํฐ ๋ง์ง๋ง๊น์ง ์ ์ฅํ๋ค.
}
System.out.println("5๋จ๊ณ ์์");
// 5๋ฒ์งธ๋ new_id๊ฐ ๋น ๋ฌธ์์ด์ด๋ฉด a๋ฅผ ๋์
ํ๋ค.
String new_id_5 = new_id_4;
if (new_id_5.length() < 1) {
// new_id_5์ ๊ธธ์ด๊ฐ 1๋ณด๋ค ์๋ค๋ฉด(=๋น ๋ฌธ์์ด์ด๋ผ๋ฉด)
new_id_5 += "a";
// ๋ฌธ์์ด์ a๋ฅผ ์ ์ฅํ๋ค.
}
System.out.println("6๋จ๊ณ ์์");
// 6๋ฒ์งธ๋ new_id์ ๊ธธ์ด๊ฐ 16์ ์ด์์ด๋ฉด, ์ฒซ๋ฒ์งธ๋ถํฐ 15๋ฒ์งธ๊น์ง๋ง ์ถ๋ ฅํ๊ณ ๋๋จธ์ง๋ ์ ์ธํ๋ค.
// 16๋ฒ์งธ ์ดํ๋ฅผ ์ ๊ฑฐ ํ ํ ๋ง์นจํ(.)๊ฐ ๋์ ์์นํ๋ฉด ๋ง์นจํ๊น์ง ์ ๊ฑฐํ๋ค.
String new_id_6 = new_id_5;
if (new_id_5.length() >= 16) {
// ๋ง์ฝ์ new_id_5์ ๊ธธ์ด๊ฐ 16๋ณด๋ค ํฌ๋ค๋ฉด
new_id_6 = new_id_5.substring(0, 15);
// substring ํจ์๋ฅผ ํตํด 0๋ฒ์จฐ๋ถํฐ 15๋ฒ์งธ๊น์ง๋ง ์ ์ฅํ๋ค.
}
if (new_id_6.endsWith(".")) {
// ์์์ ์ฌ์ฉํ endsWith๋ก ๋์ "."์ด ์๋์ง ํ์ธํ๊ณ
new_id_6 = new_id_6.substring(0, new_id_6.length() - 1);
// "."์ด ์๋ค๋ฉด, new_id_6์์ ๊ธธ์ด -1 ํ๋งํผ๊น์ง๋ง ์ถ๋ ฅํ๋ค(. ๋นผ๊ณ ์ถ๋ ฅ)
}
System.out.println("7๋จ๊ณ ์์");
// 7๋จ๊ณ๋ new_id์ ๊ธธ์ด๊ฐ 2์ ์ดํ๋ฉด, ๊ธธ์ด๊ฐ 3์๊ฐ ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ๋์ ๋ถํ๋ค.
String new_id_7 = new_id_6;
if (new_id_7.length() <= 2) {
// new_id_7์ ๊ธธ์ด๊ฐ 2๋ณด๋ค ์์ผ๋ฉด
char last = new_id_7.charAt(new_id_7.length() - 1);
// new_id_7 ๋ฌธ์์ด์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ ์ ์ฅํด์
while (new_id_7.length() < 3) {
// New_id_7์ ๊ธธ์ด๊ฐ 3์ด ๋ ๋๊น์ง
new_id_7 += last;
// last(๋ง์ง๋ง๋ฌธ์)๋ฅผ new_id_7์ ๋ฃ๋๋ค
}
}return new_id_7;
}
public static void main (String[]args){
proPrac24 newId = new proPrac24();
System.out.println(newId.solution("...!@BaT#*..y.abcdefghijklm"));
System.out.println(newId.solution("z-+.^."));
System.out.println(newId.solution("=.="));
System.out.println(newId.solution("=.="));
System.out.println(newId.solution("123_.def"));
System.out.println(newId.solution("abcdefghijklmn.p"));
}
}
- ํ์ด :
- ์ด๋ฒ ๋ฌธ์ ๋ ๋จ๊ณ๋ณ๋ก ์ํํด์ผ ํ ์ผ๋ค์ด ์ ํด์ ธ์์ด์ ๋ฉ๋ชจ์ฅ์ ์ด๋ป๊ฒ ์์ค์ฝ๋๋ฅผ ์งค๊ฒ์ธ์ง ์์ฑํ๋ค.
- ์ด๋ ค์ ์ง๋ง ๋ ํด๋ด๋ฒ๋ ธ๋ค ๐
'๐ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํญํด99] ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ - ์ท๋์ด (0) | 2022.11.24 |
---|---|
[ํญํด99] ์๊ณ ๋ฆฌ์ฆ ๋ชจ์๊ณ ์ฌ - ์์์ ๊ฐ์์ ๋ง์ (0) | 2022.11.23 |
[Programmers] Lv1. ์์ ์ํธ (0) | 2022.11.23 |
[Programmers] Lv1. ์์ ๋ง๋ค๊ธฐ (0) | 2022.11.23 |
[ํญํด99] ์๊ณ ๋ฆฌ์ฆ ๋ชจ์๊ณ ์ฌ - ๋ช์๊ฐ ํ๋๋ผ? (0) | 2022.11.22 |