BAEKJOON (Python)/Prefix Sum Algorithm 5

BAEKJOON_2851 "슈퍼 마리오" PYTHON

[백준] 2851번 Python 파이썬 https://www.acmicpc.net/problem/2851 2851번: 슈퍼 마리오 첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. www.acmicpc.net 1. 10개의 정수를 입력 받아 num 리스트에 저장한다. 2. num_sum 리스트에 num 리스트의 i+1 개의 정수 합을 각 요소로 저장한다. 3. df는 abs 함수를 이용하여 num_sum의 첫 번째 원소와 100의 차이로 초기화하고, result는 num_sum의 첫 번째 요소로 초기화한다. 4. for문을 이용하여 num_sum의 두 번째 요소부터 각 요소와 100의 차이를 계산하고, df..

BAEKJOON_2559 "수열" PYTHON

[백준] 2559번 Python 파이썬 https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 아래의 코드는 O(nk)의 시간 복잡도를 갖기 때문에 n과 k의 크기가 클 경우 오랜 시간이 걸린다. import sys n, k = map(int, sys.stdin.readline().split()) tp = list(map(int, sys.stdin.readline().split())) lt = [[0] for i i..

BAEKJOON_2167 "2차원 배열의 합" PYTHON

[백준] 2167번 Python 파이썬 https://www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 11660 문제와 유사하여 행렬의 크기 등만 조금 수정하였다. 아래 사이트 참고! https://rilla0511.tistory.com/95 BAEKJOON_11660 "구간 합 구하기 5" PYTHON [백준] 11660번 Python 파이썬 https://www.acmicpc.net/problem/11660 11660번: 구간..

BAEKJOON_11660 "구간 합 구하기 5" PYTHON

[백준] 11660번 Python 파이썬 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 입력받은 x1, y1, x2, y2 값은 인덱스와 1씩 차이가 있으므로 입력받은 값에서 1씩 빼주었다. import sys n, m = map(int,sys.stdin.readline().split()) tb = [[0 for j in range(n)] for i in range(n)] # n*n의 빈행렬을 만들어..

BAEKJOON_11659 "구간 합 구하기 4" PYTHON

[백준] 11659번 Python 파이썬 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 이번 문제에서는 누적합 알고리즘을 사용하였다. num 리스트의 누적합을 num_s 리스트에 담아주었다. 리스트 num_s의 첫 번째 원소는 num리스트의 첫 번째 요소를 그대로 담아주고 2번째 원소부터는 for문을 사용하여 전 인덱스의 원소에 해당 인덱스 원소에 더한 값을 넣어주었다. n, m = map(int, input().spl..