본문 바로가기

Coding Test/Problem Number

[Java] 게임을 만든 동준이 [2847번]

https://www.acmicpc.net/problem/2847

  • 예제 입력1
3
5
5
5
  • 예제 출력1
3
  • 예제 입력2
4
5
3
7
5
  • 예제 출력2
6

  • 문제 접근
    • 입력
      • 레벨의 수 N (1 ~ 100)
      • 클리어 시 점수 (1 ~ 19,999)
      • 항상 답이 존재하는 경우만 주어짐
    • 출력
      • 점수를 몇 번 감소 시키면 되는 지 출력
  • 문제 해결
    • 점수 1 감소 시 1씩 카운트
    • 가장 마지막을 시작으로 마지막 - 1이 마지막보다 작아지게, 마지막 -2가 마지막 - 1 보다 작아는 것을 반복
  • 기존 풀이 [메모리 : 14208 KB / 시간 : 108 ms]
public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int levelCount = Integer.parseInt(br.readLine());
    int[] level = new int[levelCount];

    for(int i = 0; i < levelCount; i++)
        level[i] = Integer.parseInt(br.readLine());

    int count = 0;
    for(int i = level.length - 2; i >= 0; i--){
        while(level[i] >= level[i+1]){
            level[i]--;
            count++;
        }
    }

    System.out.println(count);
}

'Coding Test > Problem Number' 카테고리의 다른 글

[Java] 미로 만들기 [2665번]  (0) 2024.08.05
[Java] 택배 배송 [5972번]  (0) 2024.08.05
[Java] 카드 문자열 [13417번]  (0) 2024.08.03
[Java] 거스름돈 [14916번]  (0) 2024.08.03
[Java] 상자넣기 [1965번]  (0) 2024.08.02