본문 바로가기

코딩테스트 \파이썬\자바/SWEA D3

[SWEA] 5108. [파이썬 S/W 문제해결 기본] 7일차 - 숫자 추가 D3 파이썬

[파이썬 S/W 문제해결 기본] 7일차 - 연결리스트

 

문제출처

https://swexpertacademy.com/main/learn/course/subjectDetail.do?courseId=AVuPDN86AAXw5UW6&subjectId=AWOVJ1r6qfkDFAWg

5108. [파이썬 S/W 문제해결 기본] 7일차 - 숫자 추가 D3

 

N개의 10억 이하 자연수로 이뤄진 수열이 주어진다.
이 수열은 완성된 것이 아니라 M개의 숫자를 지정된 위치에 추가하면 완성된다고 한다.
완성된 수열에서 인덱스 L의 데이터를 출력하는 프로그램을 작성하시오.

다음은 숫자를 추가하는 예이다.

인덱스

0

1

2

3

4

수열

1

2

3

4

5

 

2 7 -> 2번 인덱스에 7을 추가하고 한 칸 씩 뒤로 이동한다.

인덱스

0

1

2

3

4

5

수열

1

2

7

3

4

5



4 8 -> 4번 인덱스에 8을 추가하고 한 칸 씩 뒤로 이동한다.

인덱스

0

1

2

3

4

5

6

수열

1

2

7

3

8

4

5



[입력]
첫 줄에 테스트케이스의 수 T가 주어진다. 1<=T<=50
다음 줄부터 테스트 케이스의 별로 첫 줄에 수열의 길이 N, 추가 횟수 M, 출력할 인덱스 번호 L이 주어지고,

다음 줄에 수열이 주어진다.

그 다음 M개의 줄에 걸쳐 추가할 인덱스와 숫자 정보가 주어진다.

5<=N<=1000, 1<=M<=1000, 6<=L<=N+M

[출력]
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.


[문제풀이]

1
2
3
4
5
6
7
8
9
10
11
12
13
# 5108. [파이썬 S/W 문제해결 기본] 7일차 - 숫자 추가
# 1 파이썬 insert 함수 풀이
= int(input())
for tc in range(1, T + 1):
    # 수열의 길이 N, 추가 횟수 M, 출력할 인덱스 번호 L
    N, M, L = map(int, input().split())
    lst = list(map(int, input().split()))
    for _ in range(M): # 가변인자로 받기
        lst.insert(*map(int, input().split()))
        
    print('#{} {}'.format(tc, lst[L]))
 
 
 

 

이보게 클래스도 만들고 연결리스트로 풀어야지 ...