티스토리 뷰
버튼 누르기
문제
철수에게는 빨간색, 초록색, 파란색 세 개의 버튼이 있다. 버튼 하나를 누를 때 마다 특정 점수를 얻을 수 있으며, 철수는 1초에 한 번씩 버튼을 누를 수 있다. 물론, 특정 시간에는 세 개의 버튼 중에서 한 개의 버튼만을 누를 수 있다. 각 시간마다 특정 버튼을 눌렀을 때 얻는 점수는 모두 다를 수 있다. 예를 들어, 시간 1에 빨간색, 초록색, 파란색 버튼에 대한 점수가 3, 5, 7 로 주어질 수 있다. 이 경우에는 파란색을 누르는 것이 점수를 가장 많이 얻을 수 있다. 물론, 시간 2에 각 버튼에 대한 점수는 또 다를 수 있다. 버튼을 누를 때에는 한 가지 규칙이 있는데, 연속하여 색깔이 같은 버튼을 두 번 누를 수 없다는 것이다. 예를 들어, 시간 1에 초록색 버튼을 눌렀다면, 시간 2에는 초록색 버튼을 누를 수 없다. 이와 같은 규칙으로 각 시간마다 버튼을 누른다고 할 때, 철수가 얻을 수 있는 점수의 최댓값을 출력하는 프로그램을 작성하시오.
입력
첫 번째 줄에 철수에게 주어진 시간 N이 주어진다. ( 1 ≤ N ≤ 100,000 ) 두 번째 줄부터 N개의 시간에 대하여 빨간색, 초록색, 파란색 버튼을 눌렀을 때 얻을 수 있는 점수가 주어진다.
출력
철수가 얻을 수 있는 점수의 최댓값을 출력한다.
예제 입력
3
27 8 28
18 36 40
7 20 8
예제 출력
87
코드
//버튼누르기
import java.util.*;
public class Main {
public static ArrayList<Integer> box = new ArrayList<>();
//첫째 줄에 괄호 문자열이 한 줄에 주어진다. 하나의 괄호 문자열의 길이는 2 이상 50 이하이다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//총 몇개의 숫자를 입력 받을 것인지
int a;
int[][] b;
int c;
int d = 0;
int e = 0;
Stack<String> stack = new Stack<>();
a = sc.nextInt();
b = new int[a + 1][3];
for (int i = 1; i <= a; i++) {
c = sc.nextInt();
d = sc.nextInt();
e = sc.nextInt();
b[i][0] = c;
b[i][1] = d;
b[i][2] = e;
}
for (int i = 1; i <= a; i++) {
for (int j = 0; j < 3; j++) {
b[i][j] += Math.max(b[i - 1][(j + 1) % 3], b[i - 1][(j + 2) % 3]);
}
}
sc.close();
System.out.println(Math.max(b[a][0], Math.max(b[a][1], b[a][2])));
}
}
'알고리즘 문제 풀이 ' 카테고리의 다른 글
백준 10844번 / 쉬운 계단 수 (0) | 2018.11.05 |
---|---|
백준 1463번 / 1로 만들기 (0) | 2018.11.05 |
백준 / 정수 삼각형 (0) | 2018.11.01 |
백준 / RGB거리 (0) | 2018.11.01 |
특정 최단거리 (0) | 2018.10.24 |
파티 (0) | 2018.10.24 |
최단거리 (0) | 2018.10.22 |
팀 나누기 (0) | 2018.10.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- javascript #연속합 #알고리즘 #백준
- Javascript
- npm
- java #오르막수 #백준 #알고리즘
- 알고리즘
- java #백준 #알고리즘 #로또 #6603
- java #알고리즘 #백준 #N과M #백트래킹
- java #알고리즘 #백준 #퇴사
- 2630번
- 한글 자동 완성
- 색종이자르기
- Terminal
- java #알고리즘 #백준 #패션왕신해빈
- 백준 #알고리즘 #전깃줄 #NodeJs #javascript
- 쿼드트리
- webspider
- javascript #백준 #회의실배정 #알고리즘
- Game
- 중간거리 #야만나 #약속장소추천 #중간위치 #웹 #리액트 #React #reactjs #kakao지도 #kakaoapi
- 백준
- java #하노이 #알고리즘 #백준
- javascript #백준 #알고리즘 #LCS
- react
- java #백준 #알고리즘 #2805 #나무자르기
- webpack
- 백준 #java #알고리즘
- java #알고리즘 #백준
- 1992번
- TypeScript
- java #퀵소트 #quicksort #알고리즘 #백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함