99클럽 코테 스터디 33일차 TIL: 문자열 처리 구현

2024. 11. 29. 19:47·일기장/항해99클럽 4기

오늘의 문제 | 프로그래머스: 신규 아이디 추천

1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다.
2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.
3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다.
6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다.
     만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다.
7단계 new_id의 길이가 2자 이하라면, new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 끝에 붙입니다.

2021 카카오 비공개 채용 코딩테스트에서 쓰인 문제인듯하다. 확실히 문제 길이가 조금 길어보이기는 하지만, 문자열 관련 문제라 그리 어렵지 않을듯하다.

def solution(new_id):
    # 1단계
    step1=new_id.lower()
    # 2단계
    step2=''
    for i in step1:
        if i.isalpha() or i.isdigit() or i in "-_.": step2+=i
    # 3단계
    step3=step2[0]
    for i in step2[1:]:
        if step3[-1]==i==".": continue
        else: step3+=i
    # 4단계
    step4=step3.strip(".")
    # 5단계
    if step4=="": step4="a"
    # 6단계
    if len(step4)>=16: step4=step4[:15]
    step6=step4.strip(".")
    # 7단계
    while len(step6)<3:
        step6+=step6[-1]
    return step6

단계별로 맞춰서 변수명을 지정하고 싶었지만 마음대로 되지는 않았다. 또한 코드도 그리 효율적이거나 깔끔한지는 잘 모르겠지만 난이도가 높은 문제가 아니여서 시간 초과나 메모리 초과없이 마무리할 수 있던 듯하다.

오늘의 회고

생각보다 코딩 테스트 치고는 문제가 매우 쉬운 편이라 생각한다. 물론 파이썬을 꾸준히 썼기에 몇몇 메서드들을 알고 사용할 수 있었지만 직접 구현해도 됐을 것이라고 생각한다.

'일기장 > 항해99클럽 4기' 카테고리의 다른 글

99클럽 코테 스터디 35일차 TIL: 백트래킹 브루트포스  (2) 2024.12.02
99클럽 코테 스터디 34일차 TIL: 단순 문자열 파싱  (0) 2024.12.01
99클럽 코테 스터디 32일차 TIL: 부분 수열 DP 심화  (0) 2024.11.28
99클럽 코테 스터디 31일차 TIL: 부분 수열 DP 심화  (1) 2024.11.27
99클럽 코테 스터디 30일차 TIL: 부분 수열 DP  (0) 2024.11.26
'일기장/항해99클럽 4기' 카테고리의 다른 글
  • 99클럽 코테 스터디 35일차 TIL: 백트래킹 브루트포스
  • 99클럽 코테 스터디 34일차 TIL: 단순 문자열 파싱
  • 99클럽 코테 스터디 32일차 TIL: 부분 수열 DP 심화
  • 99클럽 코테 스터디 31일차 TIL: 부분 수열 DP 심화
미역굳
미역굳
.
  • 미역굳
    BE THE DEVELOPER
    미역굳
  • 전체
    오늘
    어제
    • TOTAL (60)
      • 안내 데스크 (1)
      • Google 공간 (3)
        • 프로젝트 트랙 1기 (3)
      • 자유공간 (9)
        • 임시학습실 (2)
        • 중앙 회의실 (5)
        • 알고리즘 연구실 (2)
      • 일기장 (47)
        • 우아한테크코스 7기 (12)
        • 항해99클럽 4기 (35)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코드잇 Python 풀스택 개발자
    백준
    백준 스트릭
    7기
    Til
    프리코스
    길벗
    항해99
    파이썬
    fixed
    수행 시간
    백준 문제 출제
    스트릭
    99클럽
    timeval
    solved.ac
    코드잇 강의
    티스토리챌린지
    코딩테스트준비
    오블완
    리뷰어
    백준 1000문제
    코드잇
    우테코
    cout.precision
    개발자
    우아한테크코스
    코드잇 JavaScript 프론트엔드 개발자
    개발자취업
    소수점 출력
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
미역굳
99클럽 코테 스터디 33일차 TIL: 문자열 처리 구현
상단으로

티스토리툴바