관리 메뉴

솜씨좋은장씨

[BaekJoon] 1551번 : 수열의 변화 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 1551번 : 수열의 변화 (Python)

솜씨좋은장씨 2022. 11. 12. 12:28
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 수열의 변화 입니다.

 

1551번: 수열의 변화

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

www.acmicpc.net

🧑🏻‍💻 문제 풀이

숫자로된 수열과 숫자 K 를 입력 받았을 때

K번 동안  B[i] = A[i+1]-A[i] 작업을 진행하고 났을때 결과를 출력하는 문제입니다.

def change_number_list(number_list):
    changed_list = []
    
    for idx in range(len(number_list) - 1):
        changed_list.append(number_list[idx+1] - number_list[idx])
        
    return changed_list

먼저 B[i] = A[i+1]-A[i] 작업을 수행하는 함수를 하나 만들어 준 뒤

def change_in_sequence(number_list, K):
    for _ in range(K):
        number_list = change_number_list(
            number_list=number_list
        )
    return ",".join(list(map(str, number_list)))

해당 함수를 K번 수행한 뒤 나오는 결과를 "," 로 join 하여 결과를 내보내는 함수를 만들어주면 끝!

 

전체 코드는 아래를 참고해주세요.

🧑🏻‍💻 코드 ( Solution )

def change_number_list(number_list):
    changed_list = []
    
    for idx in range(len(number_list) - 1):
        changed_list.append(number_list[idx+1] - number_list[idx])
        
    return changed_list
        

def change_in_sequence(number_list, K):
    for _ in range(K):
        number_list = change_number_list(
            number_list=number_list
        )
    return ",".join(list(map(str, number_list)))


if __name__ == "__main__":
    N, K = map(int, input().split())
    number_list = list(map(int, input().split(",")))
    
    print(change_in_sequence(number_list=number_list, K=K))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments