문자열 한 개 입력으로 주어지고 q개의 요청이 주어지면, 각 요청을 수행한 결과를 모두 출력하는 코드를 작성해보세요. 요청의 종류에는 아래의 세 가지가 있습니다.
- 가장 앞에 있는 문자를 제외한 나머지 문자를 한 칸씩 앞으로 당기고 가장 앞에 있던 문자를 가장 뒤로 옮깁니다.
- 가장 뒤에 있는 문자를 제외한 나머지 문자를 한 칸씩 뒤로 밀고 가장 뒤에 있던 문자를 가장 앞으로 옮깁니다.
- 문자열을 좌우로 뒤집습니다
# 문자열과 q를 입력받습니다.
string, q_num = input().split()
# 문자열 내 값을 직접 변경하기 위해서는 리스트로 변환하여 해결합니다.
list_str = list(string)
q_num = int(q_num)
# 문자열의 길이를 구합니다.
str_size = len(list_str)
# q개의 질의를 수행합니다.
for i in range(q_num):
# 요청을 입력받습니다.
q_type = int(input())
if q_type == 1:
# step1: 가장 앞의 문자를 저장한 뒤,
# step2: 문자열을 앞부터 순회하며 문자를 한 칸씩 앞으로 당기고
# step3: 문자열의 제일 뒤에 가장 앞에 있던 문자를 넣어줍니다.
front = list_str[0] # step1
for i in range(1, str_size): # step2
list_str[i - 1] = list_str[i]
list_str[str_size - 1] = front # step3
# 리스트를 문자열로 변환하여 출력합니다.
print("".join(list_str))
elif q_type == 2:
# step1: 가장 뒤의 문자를 저장한 뒤,
# step2: 문자열의 뒤부터 순회하며 문자를 한 칸씩 뒤로 밀어주고
# step3: 문자열의 제일 앞에 가장 뒤에 있던 문자를 넣어줍니다.
back = list_str[str_size - 1]; # step1
for i in range(str_size - 1, 0, -1): # step2
list_str[i] = list_str[i - 1]
list_str[0] = back # step3
# 리스트를 문자열로 변환하여 출력합니다.
print("".join(list_str))
else:
# 문자열의 앞부터 순회하며 좌우 대칭 위치에 있는 문자와 swap해줍니다.
# 단, 문자열의 절반만 순회해줍니다.
for i in range(str_size // 2):
temp = list_str[i]
list_str[i] = list_str[str_size - i - 1]
list_str[str_size - i - 1] = temp
# 리스트를 문자열로 변환하여 출력합니다.
print("".join(list_str))
# 나의 풀이 -----------------------------------------------------
inp = input().split()
string = inp[0]
n = int(inp[1])
for _ in range(n):
a = int(input())
if a == 1:
string = string[1:] + string[0]
elif a == 2:
string = string[-1] + string[:-1]
elif a == 3:
string = string[::-1]
print(string)
'Python > [코드트리]' 카테고리의 다른 글
[코드트리] 문자열을 정수로 변환하기 > 정수만 추출하기 (0) | 2023.07.07 |
---|---|
[코드트리] 대소문자 변환 > 대문자로 출력하기 (0) | 2023.07.07 |
[코드트리] 문자열 밀기 > 문자열 돌리기 (0) | 2023.07.07 |
[코드트리] 문자열 찾기 > 부분문자열 위치 구하기(★) (0) | 2023.07.04 |
[코드트리] 문자열 찾기 > 부분 문자열의 개수 (0) | 2023.07.04 |