MapleStory Finger Point

๐Ÿƒ‍โ™€๏ธprogrammers/Java

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv.1 ์‹ ๊ทœ์•„์ด๋”” ์ถ”์ฒœ

HYEJU01 2025. 5. 3. 01:49
๋ฌธ์ œ :  Lv.1 ์‹ ๊ทœ์•„์ด๋”” ์ถ”์ฒœ  https://school.programmers.co.kr/learn/courses/30/lessons/72410#
์–ธ์–ด : JAVA
์ฒด๊ฐ Level : โ˜… โ˜… โ˜†
Review: ์ •๊ทœ์‹ ํ™œ์šฉ!

 

๐Ÿ’ก chatAt ์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ๋น„๊ตํ• ๊ฑฐ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€.. ๊ทœ๋ชจ๊ฐ€ ๋ง๋„ ์•ˆ๋ ๊ฒƒ ๊ฐ™์•„์„œ

replaceAll ์‚ฌ์šฉํ–ˆ๋‹ค. ์ •๊ทœํ‘œํ˜„์‹์€ ํ˜๋ช…์ด์ง€๋งŒ.. ํ•œ๋‘๊ธ€์ž ํ‹€๋ฆฌ๋ฉด ์กฐ๊ฑด์ด ๋‹ฌ๋ผ์ง€๋‹ˆ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ๐Ÿ˜“

[^a-z0-9._-] a~z, 0~9, ., _, -๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž ์ œ๊ฑฐ
([^...]: not ๋ฌธ์ž ํด๋ž˜์Šค)
"A@b#c" → "bc"
\\.{2,} ๋งˆ์นจํ‘œ(.)๊ฐ€ 2๊ฐœ ์ด์ƒ ์—ฐ์†๋œ ๋ถ€๋ถ„์„ ํ•˜๋‚˜์˜ ๋งˆ์นจํ‘œ๋กœ ์น˜ํ™˜
(\\.: ๋งˆ์นจํ‘œ, {2,}: 2ํšŒ ์ด์ƒ ๋ฐ˜๋ณต)
"a..b...c" → "a.b.c"
^\\. ๋ฌธ์ž์—ด ์‹œ์ž‘ ๋ถ€๋ถ„์ด ๋งˆ์นจํ‘œ์ธ ๊ฒฝ์šฐ ๋งค์น˜
(^: ์‹œ์ž‘, \\.: ๋งˆ์นจํ‘œ)
".abc" → "abc"
\\.$ ๋ฌธ์ž์—ด ๋ ๋ถ€๋ถ„์ด ๋งˆ์นจํ‘œ์ธ ๊ฒฝ์šฐ ๋งค์น˜
($: ๋, \\.: ๋งˆ์นจํ‘œ)
"abc." → "abc"

 

[] ๋ฌธ์ž ํด๋ž˜์Šค
^ (๋ฌธ์ž์—ด ๋ฐ–) ๋ฌธ์ž์—ด ์‹œ์ž‘ anchor
^ (๋ฌธ์ž ํด๋ž˜์Šค ์•ˆ) ๋ถ€์ • (not)
$ ๋ฌธ์ž์—ด ๋ anchor
{n,} n๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต
\\. ๋งˆ์นจํ‘œ ๋ฆฌํ„ฐ๋Ÿด (์ •๊ทœ์‹์—์„œ .๋Š” ์•„๋ฌด ๋ฌธ์ž์ด๋ฏ€๋กœ ์ด์Šค์ผ€์ดํ”„ ํ•„์š”)
import java.util.*;

class Solution {
    public String solution(String new_id) {
        String answer = new_id;

        //1 ์†Œ๋ฌธ์ž๋กœ
        answer = answer.toLowerCase();
        
        // 2 ๋ฌธ์ž ์ œ๊ฑฐ
        answer = answer.replaceAll("[^a-z0-9._-]","");
        
        // 3 ์—ฐ์† ๋ถ€๋ถ„ ์น˜ํ™˜
        answer = answer.replaceAll("\\.{2,}", ".");


        // 4 ์•ž๋’ค ์น˜ํ™˜ 
        answer = answer.replaceAll("^\\.|\\.$", "");
        
        
        if (answer.isEmpty()) {
            answer = "a";
        }
        
        
        //16์ž ์ด์ƒ์ด๋ฉด ์ œ๊ฑฐ
        if (answer.length() > 15){
           answer = answer.substring(0,15);
        }
  
        
        // 4 ์•ž๋’ค ์น˜ํ™˜ 
        answer = answer.replaceAll("\\.$", "");


         // ๋นˆ๋ฌธ์ž์—ด ์ด๋ฉด a ๋Œ€์ž…
        if (answer.length() <= 2 && answer.length() > 0) {
            char lastChar = answer.charAt(answer.length() - 1);
            while (answer.length() < 3) {
                answer += lastChar;
            }
        }

        
        return answer;
    }
}