알고리즘/문자열, 정렬

[알고리즘] 점수계산 with Java

VIPeveloper 2022. 3. 5. 13:08
728x90
반응형

주말 알고리즘 공부쓰~

오늘 배운 것

1. 문제 풀이

. 배열 0번째는 미리 계산해두고, 1번째부터 돌면서 하나 이전꺼 + 1해주는 로직을 구상하고 코드를 짯다.

. 강의에서는 배열 자체도 잘 안쓰는 것 같다.

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        int i = kb.nextInt();
        int[] arr = new int[i];
        for (int j = 0; j < arr.length; j++) {
            arr[j] = kb.nextInt();
        }
        solution(i,arr);
    }

    private static void solution(int i, int[] arr) {
        int answer = 0;

        int[] tmp = new int[arr.length];
        if(arr[0]==1){
            tmp[0]=1;
            answer++;
        }else{
            tmp[0]=0;
        }
        for (int j = 1; j < arr.length; j++) {
            if(arr[j]==1){
                tmp[j] = tmp[j-1]+1;
                answer += tmp[j];
            }
        }
        System.out.println(answer);
    }
    private static void solution2(int i, int[] arr) {
        int answer = 0;

        int tmp = 0;
        for (int j = 0; j < arr.length; j++) {
            if(arr[j]==0){
                tmp = 0;
            }
            else{
                tmp++;
                answer+=tmp;
            }
        }
        System.out.println(answer);
    }
}
728x90
반응형