Algorithm

[Algorithm] 아이디 생성시 규칙에 따른 변경 후 생성 알고리즘

dev_Step 2022. 5. 23. 16:42

 

문제의 출처는 프로그래머스 이고,

문제는 회원가입시 아이디를 7단계의 규칙에 맞게 변형시켜주는 알고리즘이다.

 

1. 내가 짠 코드를 보자면 일단 정규표현식을 사용하지 않아서. 코드가 지저분하나 부분이 많이 있었다.

문제를 풀면서 Debug를 사용하여 변수의 변화되는 모습을 직접 보면서 어떻게 변경되고 어느 부분에서 실수가 발생 했는지 확인할 수 있었다.

 

해당 내용을 정규 표현식으로 표현할 경우 코드가 많이 짧아지고 간결해진다.

기호 설명
[] 한 개의 문자 [abc] a,b,c중 하나의 문자
[^abc] a,b,c 이외 하나의 문자
[a-zA-Z] a~z, A~Z 중 하나
? 없음 또는 한개
* 없음 또는 한개 이상
+ 한개 이상
{n} 정확히 n개
{n,} 최소한 n개
{n,m} n개부터 m개 까지
^ 문자열의 시작
$ 문자열의 끝(종료)
. 임의의 한문자
* 앞의 문자가 없을수도, 많을수도
[] 문자의 범위를 나타내며, 두 문자사이에 -기호로 범위를 나타냄 ex)a-z, 0-9
[] 내의 ^ 기호는 부정을 나타낸다
{} 횟수 또는 범위
() 소괄호 안의 문자를 하나의 문자로 인식
| 패턴 안에서 or 연산을 수행

길었던 코드가 정규표현식을 사용함으로써 엄청 짧고 간결해짐을 확인할수 있다.

정규표현식 짱짱맨

자주 사용하는 정규 표현식

^[0-9]*$==\\d 숫자
^[a-zA-Z]*$ 알파벳
^[가-힣]*$ 한글
^[a-zA-Z0-9] 알파벳이나 숫자
^[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-z]+$ 이메일

 

추가적으로 

Pattern 클래스와 Matcher 클래스를 한번 봐도 좋을것 같다.