• [프로그래머스/java] 신규 아이디 추천 문제 풀이

    2021. 9. 29.

    by. 하루플스토리

    반응형

    안녕하세요, 하루플 입니다.

     

    프로그래머스로 신규 아이디 추천 문제를 풀어보았는데요, 간단한 문제임에도 조금 헷갈릴 수 있는 부분이 있었습니다.

     

    먼저 1단계 소문자 치환입니다.

    저는 사실 A = 65, a = 97 아스키코드를 활용해서 for문과 if문을 사용해 소문자로 치환하려 했는데요,

    toLowerCase() 라는 아주 간단한 방법이 있었습니다..ㅎㅎ

     

    2단계는 소문자, 숫자, -, _, . 제외한 모든 문자를 제거하는 코드를 작성합니다.

    String 형을 한 문자식 읽기 위해 charAt을 사용하였고 for문으로 한 문자식 인덱스 읽는게 가장 간편했습니다.

     

    3단계는 ... 이렇게 점이 여러개인 경우 . 점 하나로 치환해주는 겁니다.

    전체 점의 개수를 세고 점 값을 dot에 저장합니다. 이후, replace를 통해 "." 점 하나로 치환해주었습니다.

     

    4단계는 . 점이 처음이나 끝에 있을 때 제거해야합니다.

    startsWith와 endsWith를 사용해 문자 처음과 마지막을 읽고, subString으로 원하는 만큼 문자를 잘라줍니다.

    점이 처음 있는 경우 자를때는 맨 첫 글자인 0번째 인덱스를 자르면 되니 (1, id.length()); 하면되고

    점이 마지막에 있는 경우 자를 때는 (0, id.length()-1) 을 해주어 마지막 글자를 잘라줍니다.

     

    5단계는 빈 문자열이면 "a"를 대입합니다.

    저는 처음에 NULL을 하면 될까 하였는데, length() == 0 이 훨씬 간단하겠군요.

     

    다음 6단계 입니다.

    길이 16자 이상이면 첫 15문자 제외 나머지 글자를 제거합니다.

    제거 후 .이 끝에 있다면 다시 .점을 제거합니다.

    이 문제 중 5, 6단계가 가장 쉬운 것 같습니다.

     

    마지막 7단계 입니다.

    id가 2자 이하면 마지막 문자를 길이가 3이 될 때까지 복사하여 늘려줍니다.

    last에 마지막 문자 값을 저장해두고

    length 값에 따라 last를 이어주면 끝입니다!

     

     

    아래는 참고한 블로그 입니다.

    https://minhamina.tistory.com/121

     

     

     

    반응형

    댓글