목록전체 글 (601)
sm 기술 블로그
import sys input = sys.stdin.readline N = int(input()) housePaintingCost = [list(map(int,input().split())) for _ in range(N)] for i in range(1, N): housePaintingCost[i][0] += min(housePaintingCost[i-1][1],housePaintingCost[i-1][2]) housePaintingCost[i][1] += min(housePaintingCost[i-1][0],housePaintingCost[i-1][2]) housePaintingCost[i][2] += min(housePaintingCost[i-1][0],housePaintingCost[i-1][1]..
import java.util.*; import java.io.*; import java.math.BigInteger; class Main { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] num = new int[N]; String[] tmp = br.readLine().split(" "); for(int i = 0; i < N; i++) { num[i] = Integer.parseInt(tmp[i]); } for(int i = 1..
import sys input = sys.stdin.readline N = int(input()) num = list(map(int, input().split())) for i in range(1 , N): num[i] = max(num[i], num[i-1]+num[i]) print(max(num)) 문제요약 모든 경우의 연속된 수를 더 했을 때 가장 큰 수가 무엇인가? 설명 리스트의 크기는 상관 없다. 들어온 입력의 리스트 만큼 사용할 것이다. 다음과 같이 숫자(현재 인덱스) 값과 숫자(현재 인덱스) + 숫자(현재 인덱스 - 1) 의 값 중 더 큰 것을 비교하여 본래 리스트에 덮어 씌운다. 예를들어 num[4]번째 에서 3번째 인덱스 값은 0 , 1 , 2 를 합 했을 경우 가장 큰 수를 나타낸다. ..
import java.util.*; import java.io.*; import java.math.BigInteger; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); int T = sc.nextInt(); BigInteger[] arr = new BigInteger[1001]; for (int i = 0; i < T; i++) { arr[1] = BigInteger.valueOf(1); arr[2] = BigInteger.valueOf(1); arr[3] = BigInteger.valueOf(1); int N = sc...