이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.
문제 설명
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static int solution(int N, String str) {
int count = 0; int sum = 0;
String[] input = str.split(" ");
for (String s : input) {
if(s.equals("1")) count += ++sum;
else sum = 0;
}
return count;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
System.out.println(solution(N, br.readLine()));
}
}
설명
- str 문자열을 공백을 기준으로 분할하여 문자열 배열 input에 저장한다.
- input 배열의 각 요소를 순회하며 처리한다.
- 만약 현재 문자열이 “1”이면 sum을 1 증가시킨 후 (++sum), count에 sum을 더한다.
- 만약 현재 문자열이 “1”이 아니면 sum을 0으로 초기화한다.
'자료구조 & 알고리즘 > Inflearn' 카테고리의 다른 글
[인프런 알고리즘] Chapter 2, 9번 문제(격자판 최대합) (0) | 2024.07.17 |
---|---|
[인프런 알고리즘] Chpater 2, 8번 문제(등수 구하기) (0) | 2024.07.16 |
[인프런 알고리즘] Chapter 2, 6번 문제(뒤집은 소수) (1) | 2024.07.14 |
[인프런 알고리즘] Chapter 2, 5번 문제(소수(에라토스테네스의 체)) (1) | 2024.07.14 |
[인프런 알고리즘] Chapter 2, 4번 문제(피보나치 수열) (0) | 2024.07.13 |