7월의 알고리즘

20190715

instruction

array에서 인접한 subarray의 합의 최댓값을 찾아라
최댓값이 음수일 경우 0을 리턴한다.

1
2
3
// e.g.
Max.sequence(new int[]{-2, 1, -3, 4, -1, 2, 1, -5, 4});
// 6: {4, -1, 2, 1}

Solution

1
2
3
4
5
6
7
8
9
10
11
12
public class Max {
public static int sequence(int[] arr) {
int current = 0, max = 0;

for (int i : arr) {
current = Math.max(0, current + i); // 인접한 subarray의 합, 합이 음수가 될 경우 초기화
max = Math.max(max, current); // 최댓값 max 비교
}

return max;
}
}

20190716

instruction

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 1. input
3

// 1. output
*****
***
*
***
*****

// 2. input
5

// 2. output
*********
*******
*****
***
*
***
*****
*******
*********

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
int height = input*2 - 1;

int j = 0;
for (int i = 0; i < height; i++) {

for (int k = 0; k < height - j; k++) {
System.out.print((k < j) ? " " : "*");
}

if (i < input - 1) {
j++;
} else {
j--;
}

System.out.println();
}
}

별찍기가 이렇게 힘든지 몰랐다…

참고: https://m.blog.naver.com/PostView.nhn?blogId=force44&logNo=130098292195&proxyReferer=https%3A%2F%2Fwww.google.com%2F

Share