티스토리 뷰
반응형
https://www.acmicpc.net/problem/5557
난이도 : 골드 5
전형적인 DFS 문제입니다.
가 아니고 DP 문제였습니다.
DFS로 풀었다가 시간 초과 났네요.
아무리 생각해도 DP로 풀 방법이 생각 안 나 검색해서 공부했습니다.
4
10 2 3 4 를 예로 들어보겠습니다.
이런 식으로 기존의 값에 +- n을 해주어 값을 최신화해줍니다.
이 예시의 출력은 0이겠네요.
단, 이 문제에서 수의 범위는 long형입니다. 이것을 주의하여 문제를 풀어야 합니다.
전역 변수
n = 입력 숫자의 개수
number = 입력된 숫자
count = 계산을 한 후의 숫자 개수
메소드
void main
입력을 받고 초기값(number[0])을 세팅해줍니다. 위에서 설명한 방법대로 DP를 진행합니다.
(cal 호출)
void cal
n-2번 반복합니다. n이 3일 때 계산은 1번만 이루어집니다.
새로운 long형 임시 배열을 생성하고 count 배열을 토대로 연산을 시작합니다.
연산이 끝나면 count에 임시 배열의 값을 덮어 씌워줍니다.
(cal 호출 - 재귀)
반응형
'문제풀이 > 백준 && 프로그래머스' 카테고리의 다른 글
[백준 2957] 이진 탐색 트리 (자바) (0) | 2020.10.11 |
---|---|
[백준 5427] 불 (자바) (3) | 2020.10.08 |
[백준 12100] 2048 (Easy) (자바) (0) | 2020.10.02 |
[백준 2252] 줄 세우기 (자바) (0) | 2020.10.02 |
[프로그래머스] 오픈채팅방 (자바) (0) | 2020.09.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 카카오
- 트리
- 취준
- 네이버
- 신입
- 후기
- 백준
- 최소스패닝트리
- 프로젝트
- 레벨3
- 그래프탐색
- dfs
- BFS
- 면접
- 자료구조
- 시뮬레이션
- 프로그래머스
- 구현
- 브루트포스
- 스프링
- 그래프이론
- 실버
- 레벨4
- 자바
- 레벨2
- 스프링부트
- 플레
- 코딩테스트
- 골드
- 게시판
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함