[BOJ] Python 백준 23746번 문자열 압축 해제 브론즈 1
알고리즘/알고리즘 문제 풀이2021. 12. 7. 01:18
728x90
https://www.acmicpc.net/problem/23746
23746번: 문자열 압축 해제
특정 소문자 문자열 패턴을 대문자 한 글자로 압축하는 프로그램 SPC(String Pattern Compressor)가 있다. 예를 들어, 다음과 같은 방법으로 압축하는 경우, “$\text{aabbaaac}$”는 “$\text{ABAC}$”로 압축된
www.acmicpc.net
문제 풀이
대문자 하나에 대응하는 소문자 문자열이 정해져 있으므로 Python의 딕셔너리를 사용하면 쉽게 해결할 수 있다.
대응하는 문자들을 딕셔너리에 저장하고 압축된 문자열이 들어왔을 때 차례대로 소문자 문자열로 치환하면 쉽게 풀 수 있는 문제다.
바로 전체 코드로 넘어가겠다.
n=int(input())
word={}
res=""
for i in range(n):
temp=list(input().split())
word[temp[1]]=temp[0]
question=input()
for i in question:
res+=word[i]
num=list(map(int,input().split()))
print(res[num[0]-1:num[1]])
2번째 word는 딕셔너리를 선언했고 for문을 돌면서 입력받은 값을 저장하면 된다.
이때 주의해야 할 점은 압축된 문자열을 풀어야 하므로 입력받은 대문자를 딕셔너리의 키, 소문자 문자열 패턴을 딕셔너리의 값으로 저장해야 한다는 것이다.
res에 치환한 문자열을 저장하고 입력받은 인덱스를 기준으로 출력하면 쉽게 풀 수 있다.
인덱스로 범위 출력 시 왼쪽 인덱스는 포함, 오른쪽 인덱스는 미만까지 출력하는 점을 주의해야 한다.
728x90
'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글
[BOJ] Python 백준 1038번 감소하는 수 골드 5 (0) | 2021.12.08 |
---|---|
[Programmers] Python 프로그래머스 주식가격 Level 2 (0) | 2021.12.07 |
[Programmers] Python 프로그래머스 프린터 Level 2 (0) | 2021.12.06 |
[Programmers] Python 프로그래머스 기능개발 Level 2 (0) | 2021.12.06 |
[BOJ] Python 백준 1072번 게임 실버 3 (2) | 2021.11.30 |
댓글()