방명록
- [BOJ] 1912 : 연속합 - java2024년 07월 16일 08시 48분 29초에 업로드 된 글입니다.작성자: hwangmono__o
문제
https://www.acmicpc.net/problem/1912
문제풀이
nowMax : 현재 위치까지의 최대 부분 배열 합을 저장
overMax : 지금까지 발견된 전체 최대 부분 배열 합을 저장
초기값으로 첫 번째 요소를 설정
배열의 두 번째 요소부터 순회하며, 현재 요소를 시작으로 새로운 부분 배열의 합(arr[i])과 이전 부분 배열에 현재 요소를 추가한 합(nowMax + arr[i]) 중 더 큰 값을 nowMax에 저장
overMax는 nowMax와 비교하여 더 큰 값을 저장하여 전체 최대 부분 배열 합을 유지
소스코드
import java.io.*; import java.util.StringTokenizer; public class _1912 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; StringTokenizer st = new StringTokenizer(br.readLine()); for (int i = 0; i < n; i++) { arr[i] = Integer.parseInt(st.nextToken()); } int nowMax = arr[0]; int overMax = arr[0]; for (int i = 1; i < n; i++) { nowMax = Math.max(arr[i], nowMax + arr[i]); overMax = Math.max(overMax, nowMax); } bw.write(overMax + "\n"); bw.flush(); br.close(); } }
etc
알고리즘 분류 : 다이나믹 프로그래밍, 카데인 알고리즘
'Algorithm > 백준' 카테고리의 다른 글
[BOJ] 14501 : 퇴사 - java (0) 2024.08.20 [BOJ] 1254 : 팰린드롬 만들기 - java (0) 2024.07.04 [BOJ] 3019 : 테트리스 - java (0) 2024.06.21 [BOJ] 28702 : FizzBuzz - java (0) 2024.06.05 [BOJ] 30802 : 웰컴 키트 - java (0) 2024.06.05 다음글이 없습니다.이전글이 없습니다.댓글