728x90
반응형
문제설명
0 ~ 999999 사이의 수를 나열하여 만든 암호문이 있다.
암호문을 급히 수정해야 할 일이 발생했는데, 이 암호문은 특수 제작된 처리기로만 수정이 가능하다.
이 처리기는 다음과 같이 1개의 기능을 제공한다.
1. I(삽입) x, y, s : 앞에서부터 x의 위치 바로 다음에 y개의 숫자를 삽입한다. s는 덧붙일 숫자들이다.[ ex) I 3 2 123152 487651 ]
위의 규칙에 맞게 작성된 명령어를 나열하여 만든 문자열이 주어졌을 때, 암호문을 수정하고, 수정된 결과의 처음 10개 숫자를 출력하는 프로그램을 작성하여라.
[입력]
첫 번째 줄 : 원본 암호문의 길이 N ( 10 ≤ N ≤ 20 의 정수)
두 번째 줄 : 원본 암호문
세 번째 줄 : 명령어의 개수 ( 5 ≤ N ≤ 10 의 정수)
네 번째 줄 : 명령어
위와 같은 네 줄이 한 개의 테스트 케이스이며, 총 10개의 테스트 케이스가 주어진다.
[출력]
#기호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 수정된 암호문의 처음 10개 항을 출력한다.
풀이 코드
- 배운 점: split(maxsplit=#)
T = 10
for jc in range(1,T+1):
N = int(input()) # 원래 암호문 길이 10~20
default_N = list(map(int, input().split())) # 원래 문자열
M = int(input()) # 명령어 개수
M_list = list(map(str, input().split('I')))
for i in M_list:
if len(i) > 1:
x, y, toAdd = i.split(maxsplit = 2)
x = int(x)
toAddList = list(map(int, toAdd.split()))
default_N = default_N[:x] + toAddList + default_N[x:]
print(f"#{jc} {' '.join(map(str, default_N[0:10]))}")
728x90
반응형
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA/Python3] 1493. 수의 새로운 연산 (0) | 2024.10.05 |
---|