//GitHub https://github.com/vellimole0621
vellimole0621 - Overview
vellimole0621 has 4 repositories available. Follow their code on GitHub.
github.com
백준 2435번 : 기상청 인턴 신현수
( 문제 - https://www.acmicpc.net/problem/2435)
문제 설명 : 주어진 일 수(N)의 기온을 입력받아. 연속된 K일 동안의 기온 합 중 가장 높은 기온 합을 출력하라
풀이 : N , K값 입력 >> N일간 기온 기록 >> K 일간, 가장 큰 기온 합 찾기 >> 결과 출력
// 2435번 기상청 인턴 신현수
package algorithm;
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
// N , K 값 입력
int N = sc.nextInt();
int K = sc.nextInt();
// N일간 기온 기록
int[] T = new int[N];
for(int i = 0; i < N; i++){
T[i] = sc.nextInt();
}
// K일간, 가장 큰 기온 합 찾기
int top = -1000000000;
int res = 0;
int i = 0;
// i 초기화 변수 초기화
int temp = 0;
// 더하는 횟수 기록 변수 초기화
int temp2 = 0;
for(int f = 0; f < N - K +1; f++){
i = temp;
while(temp2 != K){
res += T[i];
i++;
temp2++;
}
if(res > top){
top = res;
}
temp++;
temp2 = 0;
res = 0;
}
// 결과 출력
System.out.println(top);
sc.close();
}
}
어려웠던 점 : 문제 자체는 굉장히 쉬운 문제임에도 불구하고. 이상하게 반복문을 for 문과 while을 섞어 쓰는 바람에 코드가 꼬인 감이 없지 않다. 마지막에, 음수 기온만 연속으로 나올 경우를 놓쳐서 가장 큰 기온 값(top)을 0으로 두어서, 놓친 부분을 찾느라 시간이 소요되었다.
'프로그래밍 > Java' 카테고리의 다른 글
[자바 JAVA/알고리즘]백준 1075번 : 나누기 (0) | 2022.09.11 |
---|---|
[자바 JAVA/알고리즘]백준 1100번 : 하얀 칸 (0) | 2022.09.10 |
[자바 JAVA/알고리즘] 백준 1598번 : 꼬리를 무는 숫자 나열 (0) | 2022.09.07 |
[자바 JAVA/알고리즘] 백준 2455번 : 지능형 기차 (0) | 2022.09.05 |
[자바 JAVA/알고리즘] 백준 10845번 : 큐 (0) | 2022.09.04 |