Koala - 12기/기초 알고리즘 스터디

[백준 python3] 1551번 : 수열의 변화

알 수 없는 사용자 2023. 9. 17. 19:18

https://www.acmicpc.net/problem/1551

 

1551번: 수열의 변화

첫째 줄에 수열의 크기 N과 K가 주어진다. N은 20보다 작거나 같은 자연수이고, K는 0보다 크거나 같고, N-1보다 작거나 같은 정수이다. 둘째 줄에는 수열이 ‘,’로 구분되어 주어진다. 수열을 이루

www.acmicpc.net

 

문제 코드

n, k = map(int, input().split())

a = list(map(int, input().split(',')))

for i in range(k):
    for j in range(len(a)-1):
        a.append(a[1]-a[0])
        a.pop(0)
    a.pop(0)

print(','.join(map(str, a)))

 

문제풀이

1.  수열의 크기 N과 반복할 횟수 K를 정수형으로 입력 받는다.

2.   초기 수열을 리스트 형식으로 입력받는다.

3. 이중반복문을 이용한다.
수열의 (두번째 요소) - (첫번째 요소)를 계산하여 리스트에 append 해주고, pop 메서드를 사용해 맨 앞의 요소를 삭제하면 다시 (두번째 요소) - (첫번째 요소)를 진행하면 된다. 반복문이 종료되면 pop 메서드를 다시 사용하여 초기 리스트에 있던 값을 결과적으로 모두 삭제할 수 있다.
위 과정을 K번 반복한다.

4. join 메서드를 사용하여 모든 과정이 완료된 리스트 a를 출력한다.