728x90
반응형
안녕하세요. delay100 입니다!
미들러 문제
1번. 스케이트연습
https://www.acmicpc.net/problem/28324
문제에서 주어진 조건은 아래와 같습니다.
- 시작지점 -(0의 속력)> 0, 1, 2, 3 ... N -(0의 속력)> 도착지점
- 각 중간 지점에는 속력 제한 Vi가 존재
- 속력up: 원하는 만큼 증가 가능
- 속력down: 마지막으로 방문했던 지점에서의 속력에서 -1만큼만 감소 가능
- 출발지점, 도착지점을 제외한 위치는 속력이 0이 될 수 없음
- 속력을 변경하지 않고 그대로 유지하는 것도 가능
구하고자 하는 것 : 각 지점에서의 속력의 합의 최대치
V[2, 3, 1] => 2+2+1 = 5
V[23, 7, 1, 5] => 3+2+1+1 = 7
결국 마지막에 속력 0에 도달해야하므로 가장 뒤의 index부터 계산하도록 생각했습니다.
그림으로 코드의 조건문을 설명하자면 아래와 같습니다.
vList(입력받은 리스트)와 result(결과 리스트)의 값을 비교하여 하나씩 result 배열에 값을 넣는 방식입니다.
추가로 주의해야할 점은 sum은 Long타입이어야 한다는 것입니다.(int형인 경우 마지막 서브태스크 통과 불가능)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
N = Integer.parseInt(st.nextToken());
int[] vList = new int[N];
int[] result = new int[N];
result[N-1] = 1;
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++) {
vList[i] = Integer.parseInt(st.nextToken());
}
for(int i=N-2; i>=0; i--) {
if(vList[i] < result[i+1]) {
result[i] = result[i+1];
}
result[i] = result[i+1]
}
br.close();
bw.close();
}
}
+ 비기너 문제
직사각형에서 탈출 (https://www.acmicpc.net/problem/1085)
+ 챌린저 문제
정수 삼각형 (https://www.acmicpc.net/problem/1932)
봐주셔서 감사합니다. 피드백 환영합니다.
728x90
반응형
'항해99 > 99club1기TIL' 카테고리의 다른 글
[99club/TIL] 7주차 - 목요일 TIL(Today I Learned) (1) | 2024.05.09 |
---|---|
[99club/TIL] 7주차 - 화요일 TIL(Today I Learned) (0) | 2024.05.08 |
[99club/TIL] 7주차 - 월요일 TIL(Today I Learned) (0) | 2024.05.06 |
[99club/TIL] 6주차 - 일요일 TIL(Today I Learned) (0) | 2024.05.05 |
[99club/TIL] 6주차 - 토요일 TIL(Today I Learned) (0) | 2024.05.04 |