Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- C언어 계산기 프로그램
- 괄호 검사 프로그램
- 문자형 배열
- r-value참조자
- 회전 및 자리 이동 연산
- 유형 변환
- const l-value참조자
- 알고리즘 조건
- 원형 연결 구조 연결된 큐
- 백준 파이썬
- l-value참조자
- 값/참조/주소에 의한 전달
- 범위 기반 for문
- auto 키워드
- 프로그래머스 배열만들기4
- LAN의 분류
- 네트워크 결합
- const화
- 입출력 관리자
- 문제해결 단계
- c언어 괄호검사
- 프로그래머스 푸드 파이트 대회
- string유형
- IPv4 주소체계
- 논리 연산
- getline()함수
- C언어 스택 연산
- 주기억장치
- 운영체제 기능
- C언어 덱
Archives
- Today
- Total
chyam
[프로그래머스 Lv2,python]- 압축 본문


https://school.programmers.co.kr/learn/courses/30/lessons/17684?language=python3
def solution(msg):
li=[] # 알파벳 값들 저장하는곳
for i in range(65,91): # A~Z까지 저장하기
li.append(chr(i)) # 아스키코드
an = [] # 출력할 값의 인덱스들
i=0 # 인덱스
while(i<len(msg)):
j=2 # 인덱스 범위에 더할 값
k=1 # 인덱스를 증가시킬 값
le=len(li) # 원래 길이 저장
while(i+j<=len(msg)): # 인덱스가 msg길이 이하여야함
if msg[i:i+j] not in li: # 값이 li에 없으면
li.append(msg[i:i+j]) # 추가해주기
break
j+=1 # 비교할 범위 증가시키기
k+=1 # 인덱스 증가시키기
if le==len(li): # 길이가 같다는건 추가되지 않은것이므로 그 알파벳의 인덱스+1을 저장하기
an.append(li.index(msg[i:i+j])+1)
else: # 추가된것은 i부터i+j-1까지 li에 있는것이므로 그 알파벳의 인덱스+1을 저장하기
an.append(li.index(msg[i:i+j-1])+1)
i+=k
return an
위는 내가 작성한 풀이이다. LZW압축을 제대로 사용하지 않아서 조금 복잡하다,,
아래는 다른분의 풀이이다.
def solution(msg):
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
d = {k:v for (k,v) in zip(alphabet, list(range(1,27)))} # "A":1 이런식으로 저장된것
answer = []
while True:
if msg in d: # d에 msg 전체가 있으면
answer.append(d[msg]) # 그것의 색인번호를 추가해주고 끝내기
break
for i in range(1, len(msg)+1):
if msg[0:i] not in d: # 0~ i까지의 값이 없으면
answer.append(d[msg[0:i-1]]) # 그전인덱스까지의 색인번호를 추가해주기
d[msg[0:i]] = len(d)+1 # d에 색인번호 추가하기
msg = msg[i-1:] # msg를 잘라서 저장해주기
break
return answer
'프로그래머스 > LV2' 카테고리의 다른 글
[프로그래머스 Lv2,python]- 더 맵게 (0) | 2025.01.23 |
---|---|
[프로그래머스 Lv2,python]- 뒤에 있는 큰 수 찾기 (0) | 2025.01.23 |
[프로그래머스 Lv2,python]- n진수 게임 (0) | 2025.01.22 |
[프로그래머스 Lv2, python]- 방문 길이 (0) | 2025.01.21 |
[프로그래머스 Lv2,python]- k진수에서 소수 개수 구하기 (1) | 2025.01.20 |