코딩문제풀이/파이썬
[프로그래머스] 신규 아이디 추천(파이썬)
오늘밤공부
2023. 3. 25. 10:00
반응형
🗓️ 문제 설명
- 유저들이 규칙에 맞지 않은 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하고 있습니다.
- 아이디의 규칙은 다음과 같습니다.
- 아이디의 길이는 3자 이상 15자 이하여야 합니다.
- 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)만 사용할 수 있습니다.
- 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다.
- 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이디가 아이디 규칙에 맞는지 검사하고 규칙에 어긋난다면 새로운 아이디를 추천해주려고 합니다.
- new_id의 모든 대분를 대응되는 소문자로 치환합니다.
- new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.
- new_id에서 마침표(.)가 2번 이상 연속된 부분은 하나의 마침표(.)로 치환합니다.
- new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
- new_id가 빈 문자열이라면, new_id에 'a'를 대입합니다.
- new_id의 길이가 16자 이상이면 첫 15개의 문자를 제외한 나머지 문자를 모두 제거합니다.
만약 제거 후 마침포(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.)문자를 제거합니다. - new_id의 길이가 2자 이하라면, new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 끝에 붙입니다.
- 신규 유저가 입력한 아이디를 나타내는 new_id가 매개변수로 주어질 때, 위 7단계의 처리 과정을 거친 후의 추천 아이디를 반환하세요.
- 제한 사항
- new_id는 길이 1이상 1,000이하인 문자열
- new_id는 알파벳 대문자, 알파벳 소문자, 숫자, 특수문자로 구성
- new_id에 나타날 수 있는 특수문자는 "-_.~!@#$%^&*()=+[{]}:?,<>/"로 한정됩니다.
- 입출력 예시
new_id | result |
"...!@BaT#*..y.abcdefghijklm" | "bat.y.abcdefghi" |
"z-+.^." | "z--" |
"=.=" | "aaa" |
"123_.def" | "123_.def" |
"abcdefghijklmn.p" | "abcdefghijklmn" |
💻 코드
최종 코드
코드 풀이
다른 사람 풀이
더보기


풀이 1번

- 4번줄 : 주어진 문자열을 소문자로 변경
- 6~8번줄 : 문자열을 하나씩 꺼내면서 알파벳, 숫자, '-', '_', '.'만 answer에 붙힘
- 10~11번줄 : answer에 '.'가 연속해서 있으면 한개의 '.'로 변경
- 13~16번줄 : 문자열의 처음과 끝에 '.'가 있으면 제거
- 18~19번줄 : 문자열이 비어있으면 'a'를 추가
- 21~24번줄 : 문자열의 길이가 15이상이면 15번째 인덱스에서 잘라주고 마지막 값이 '.'라면 마지막 값을 제거
- 26~27번줄 : 문자열의 길이가 3 미만이라면 마지막 값을 부족한 길이만큼 추가해줌
풀이 2번

- 5번줄 : 주어진 문자열을 소문자로 변경
- 6번줄 : 문자열에서 소문자, 숫자, '-', '_', '.'를 제외한 문자는 제거
- 7번줄 : '.'가 연속으로 나오면 하나의 '.'로 대체
- 8번줄 : 처음과 마지막 자리에 '.'가 나온다면 제거
- 9번줄 : 문자열이 비어있다면 'a'를 아니라면 15번째 인덱스에서 자른 문자열을 저장
- 10번줄 : 8번줄과 동일(처음과 마지막 자리에 '.'가 나온다면 제거)
- 11번줄 : 문자열의 길이가 2이상이라면 있는 그대로 저장하고, 아니라면 부족한 길이만큼 마지막 문자열을 더해서 저장
알게된 점
더보기
string = string if 조건 else 조건
문자열은 위와 같은 형태가 가능하다는 사실!
반응형