[프로그래머스] Level2, 3차 압축 (Python)

2021. 6. 16. 14:14·알고리즘/프로그래머스
728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/17684

 

코딩테스트 연습 - [3차] 압축

TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34]

programmers.co.kr

 

코드

def solution(msg):
    answer = []
    eng = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
    
    while len(msg) > 0:
        w = msg[0]
        cnt = 0
        if len(msg) == 1:
            answer.append(eng.index(w)+1)
            break
        while len(w) < len(msg):
            s = w
            cnt += 1
            w += msg[cnt]
            if w not in eng:
                w = s
                break
        answer.append(eng.index(w)+1)
        msg = msg[len(w):]
        if msg:
            eng.append(w + msg[0])
    return answer

msg문자열에 들어가 있는 문자를 한개씩 확인하여 eng 리스트안에 있는 문자열이면 index 값을 가져와 answer에 넣어주면 된다.

 

KAKAO가 msg문자열로 들어 왔을 경우에 첫번째 문자열 K부터 확인을 하는데 그 뒤에 문자열까지 합친 값이 eng에 있을 경우 빨리 찾을 수 있으므로 뒤에 문자열을 붙여 eng에 있는지를 확인한다.

 

예를 들어 eng 리스트에 KA가 있는지 부터 확인을 한다. 만약 있다면 KAK 까지 확인을 하고 KAK는 없다면 eng리스트에 KA에 인덱스를찾아 answer에 넣어주면 된다.

msg는 answer에 추가한 문자열 만큼 슬라이싱 해준다.

그리고 없었던 문자열 KAK는 eng에 넣어준다.

 

반응형
저작자표시 (새창열림)

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] Level1, 실패율 (Python)  (0) 2021.06.17
[프로그래머스] Level1, 키패드 누르기 (Python)  (0) 2021.06.17
[프로그래머스] Level2, 3차 파일명 정렬 (Python)  (0) 2021.06.16
[프로그래머스] Level2, 캐시 (Python)  (0) 2021.06.14
[프로그래머스] Level2, 문자열 압축 (Python)  (0) 2021.06.13
'알고리즘/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] Level1, 실패율 (Python)
  • [프로그래머스] Level1, 키패드 누르기 (Python)
  • [프로그래머스] Level2, 3차 파일명 정렬 (Python)
  • [프로그래머스] Level2, 캐시 (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196) N
      • study (1) N
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1) N
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    버그
    카카오코딩테스트
    카카오인턴
    알고리즘
    에러
    김영한
    java
    브루트포스
    백준
    회고
    SFlash
    그리디
    정리
    스파르타코딩클럽
    코딩테스트
    후기
    orm
    해결
    프로그래머스
    항해마켓
    spring
    인프런
    미니프로젝트
    괄호
    실전프로젝트
    SpringBoot
    jpa
    조합
    파이썬
    항해99
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[프로그래머스] Level2, 3차 압축 (Python)
상단으로

티스토리툴바