파이썬 알고리즘/파이썬 탐색 & 시물레이션

    5. 수들의 합

    수들의 합 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i]+A[i+1]+…+A[j-1]+A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. ▣ 입력설명 첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. ▣ 출력설명 첫째 줄에 경우의 수를 출력한다. ▣ 입력예제 1 8 3 1 2 1 3 1 1 1 2 ▣ 출력예제 1 5 문제풀이 import sys sys.stdin=open("input.txt", "r") N, M = map(int, input().spli..

    4. 두 리스트 합치기

    두 리스트 합치기 오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로 그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 첫 번째 리스트의 크기 N(1

    9. 봉우리

    import sys sys.stdin=open("input.txt", "r") dx = [-1, 0, 1, 0] #dx는 행 행-1감소 12시방향(상) 행 +1증가 6시방향(하) dy = [0, 1, 0, -1] #dy는 열 열+1증가 3시방향(우) 열 -1감소 9시방향(좌) n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] a.insert(0, [0]*n) #첫 행에 0을 넣는다. a.append([0]*n) #마지막 행에 0을 넣는다. for x in a: x.insert(0, 0) #각 행의 첫번째 요소에 0을 넣는다. x.append(0) #각 행의 끝에 요소에 0을 넣는다. cnt =0 for i in range(1..

    8. 모래시계

    import sys sys.stdin=open("input.txt", "r") n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] m = int(input()) for _ in range(m): h,t,k = map(int, input().split()) if t==0: for _ in range(k): a[h-1].append(a[h-1].pop(0)) #a[h-1].pop(0) : 인덱스 h-1행에 해당하는 첫번째 요소를 pop한다. #뽑은 그 요소를 행의 맨 뒤에 넣는다. elif t==1: for _ in range(k): a[h-1].insert(0, a[h-1].pop()) s =0 e =n-1 sum =0 for ..