연권
달콘박스
연권
전체 방문자
오늘
어제
  • 전체 (308)
    • Web (22)
      • JavaScript (8)
      • TypeScript (2)
      • Node.js (8)
      • HTML (0)
      • CSS (0)
      • Network (1)
      • Browser (0)
      • Patterns (3)
    • Framwork (4)
      • Vue.js (3)
      • Electron (1)
    • Infra&DevOps (1)
    • Algorithm (246)
    • Database (16)
    • Review (15)
    • Test (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • BFS
  • 문자열
  • 동적계획법
  • 코딩테스트 연습
  • typescript
  • 스택
  • 백준ㅇ
  • MySQL
  • 백트레킹
  • 진법
  • 백준
  • javascript
  • DP
  • 재귀
  • 진수
  • 정렬
  • 알고리즘
  • 프로그래머스
  • sql
  • java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
연권

달콘박스

Algorithm

백준 2529번 부등호 [ Java ]

2021. 5. 19. 23:09
반응형
 

2529번: 부등호

두 종류의 부등호 기호 ‘<’와 ‘>’가 k개 나열된 순서열  A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제

www.acmicpc.net

 

 

 

import java.io.*;
import java.util.*;

public class Main {
    static int k;
    static char[] sign;
    static int[] num;
    static ArrayList<String> list = new ArrayList<>();
    static boolean[] visited = new boolean[10];
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        k = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());
        sign = new char[k];
        num = new int[k+1];
        for (int i = 0; i < k; i++)
            sign[i] = st.nextToken().charAt(0);
        bt(0);
        Collections.sort(list);
        System.out.println(list.get(list.size()-1));
        System.out.print(list.get(0));
    }
    static void bt(int depth) {
        if (depth == k+1) {
            String sum = "";
            for (int n : num)
                sum += n;
            list.add(sum);
            return;
        }
        for (int i = 0; i < 10; i++) {
            if (isPromissing(depth, i) && !visited[i]) {
                visited[i] = true;
                num[depth] = i;
                bt(depth + 1);
                visited[i] = false;
            }
        }
    }
    static boolean isPromissing(int depth, int i) {
        if (depth == 0) return true;
        if (sign[depth - 1] == '>')
            return num[depth - 1] > i ? true : false;
        else return num[depth - 1] < i ? true : false;
    }
}
반응형
저작자표시 동일조건 (새창열림)

'Algorithm' 카테고리의 다른 글

백준 1010번 다리놓기 [ Java ]  (0) 2021.06.26
2021 Summer Coding - 여름방학 스타트업 인턴 프로그램 코딩테스트 후기  (0) 2021.05.26
백준 15661번 링크와 스타트 [ Java ]  (0) 2021.05.18
백준 1476번 날짜 계산 [ Java ]  (0) 2021.05.11
백준 11728번 배열 합치기 [ Java ]  (0) 2021.05.10
    'Algorithm' 카테고리의 다른 글
    • 백준 1010번 다리놓기 [ Java ]
    • 2021 Summer Coding - 여름방학 스타트업 인턴 프로그램 코딩테스트 후기
    • 백준 15661번 링크와 스타트 [ Java ]
    • 백준 1476번 날짜 계산 [ Java ]
    연권
    연권

    티스토리툴바