[백준] 10819 차이를 최대로 java

2022. 2. 7. 00:18· Dev/PS

import java.io.*;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    static int N;
    static int ans = 0;
    static StringTokenizer st;

    public static void recur(int[] A, int depth, int n) {
        //종료조건
        if(depth == N) {
            ans = Math.max(ans, calculate(A, n));
            return;
        }
        //재귀호출
        for(int i = depth; i < N; i++) {
            swap(A, i ,depth);
            recur(A, depth+1, n);
            swap(A, i, depth);
        }
    }

    public static int calculate(int[] arr, int n) {
        int sum = 0;
        for(int i = 0; i < n-1; i++) {
            sum += Math.abs(arr[i] - arr[i+1]);
        }
        return sum;
    }

    public static void swap(int[] A, int a, int b) {
        int tmp = A[a];
        A[a] = A[b];
        A[b] = tmp;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        N = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());
        int[] A = new int[N];
        for(int i = 0; i < N; i++) {
            A[i] = Integer.parseInt(st.nextToken());
        }
        recur(A, 0, N);
        System.out.println(ans);
    }
}

기본적인 완전탐색이다. 순열 문제로 n개의 원소 중 r개의 원소를 뽑아서 중복없이 순서대로 나열한 후에 |A[0] - A[1]| + |A[1] - A[2]| ... + |A[N-2] - A[N-1]| 을 한 값중에서 MAX값을 출력해주면 된다.

 

 

저작자표시 (새창열림)

'Dev > PS' 카테고리의 다른 글

[백준] 14888 연산자 끼워넣기 java  (0) 2022.02.08
[백준] 14889 스타트와 링크 java  (0) 2022.02.08
[백준] 1186 부분수열의 합 java  (0) 2022.02.02
[백준] 1009 분산 처리 java  (0) 2022.01.27
[백준] 15686 치킨 배달 java  (1) 2022.01.26
'Dev/PS' 카테고리의 다른 글
  • [백준] 14888 연산자 끼워넣기 java
  • [백준] 14889 스타트와 링크 java
  • [백준] 1186 부분수열의 합 java
  • [백준] 1009 분산 처리 java
풋데브
풋데브
지속가능한 삶
풋데브
지루함에 익숙해지자
풋데브
전체
오늘
어제
  • 분류 전체보기 (90)
    • 일상 (4)
    • 후기 (2)
    • 운동 (0)
    • Dev (84)
      • PS (72)
      • CS (0)
      • Java (1)
      • Spring (0)
      • DB (4)
      • Test (2)
      • Web (0)
      • 트러블 슈팅 (2)
      • Etc (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백트래킹
  • 투포인터
  • 깊이우선탐색
  • 구현
  • 너비우선탐색
  • DP
  • 그래프
  • programming
  • 개발자
  • DFS
  • combination
  • 코테
  • 알고리즘
  • BOJ
  • 백엔드
  • 조합
  • bruteforce
  • 다이나믹프로그래밍
  • 완전탐색
  • 자바
  • Implement
  • java
  • Developer
  • algorithm
  • BFS
  • 코딩테스트
  • graph
  • 백준
  • 자료구조
  • codingtest

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
풋데브
[백준] 10819 차이를 최대로 java
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.