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
반응형
'알고리즘 > 문자열, 정렬' 카테고리의 다른 글
[알고리즘] 격자판 최대합 with Java, 이중 for문 (0) | 2022.03.05 |
---|---|
[알고리즘] 등수구하기 with Java, 이중 for문 (0) | 2022.03.05 |
[알고리즘] 뒤집은 소수 with Java, 숫자뒤집기에 대한 생각 (0) | 2022.03.05 |
[알고리즘] 에라토스테네스의 체 with Java, int[] 초기화 (0) | 2022.03.03 |
[알고리즘] 피보나치 수열 with Java (0) | 2022.03.03 |