12015. 가장 증가하는 부분수열 2 (Java)

2024. 1. 10. 11:05·Algorithm & Data Structures/BOJ

비트연산자개념을 사용하여 while문 하나로 이분탐색을 구현한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());
        List<Integer> list = new ArrayList<>();

        list.add(0);

        while(N-->0){
            int val = Integer.parseInt(st.nextToken());
            if(val > list.get(list.size()-1)) list.add(val);
            else{
                int left = 0;
                int right = list.size()-1;
                while(left<right) {
                    int mid = (left+right) >> 1;
                    if (list.get(mid) < val) left = mid+1;
                    if (list.get(mid)>= val) right = mid;
                }
                list.set(right,val);
            }
        }
        System.out.println(list.size()-1);
    }
}

 

 

'Algorithm & Data Structures > BOJ' 카테고리의 다른 글

b31403,b30802  (0) 2024.10.08
2776. 암기왕 (Java)  (1) 2024.01.27
1865. 웜홀 (Java)  (1) 2024.01.02
1918. 후위 표기식 (Java)  (0) 2024.01.01
1991. 트리 순회 (Java)  (0) 2023.12.24
'Algorithm & Data Structures/BOJ' 카테고리의 다른 글
  • b31403,b30802
  • 2776. 암기왕 (Java)
  • 1865. 웜홀 (Java)
  • 1918. 후위 표기식 (Java)
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (307) N
      • Algorithm & Data Structures (233) N
        • BOJ (91) N
        • SWEA (1)
        • Programers (137) N
        • Data Structures (3)
      • DB (21)
        • SQL (15)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백트래킹
    Stack
    Union-Find
    programmers
    프로그래머스
    dp
    이분탐색
    전위순회
    스택
    DynamicProgramming
    골드
    구현
    SQL
    baekjoon
    유니온파인드
    BFS
    binarySearch
    백준
    algorithm
    Java
    투포인터
    알고리즘
    다익스트라
    dfs
    PriorityQueue
    동적계획법
    unionfind
    경로압축
    Dijkstra
    후위순회
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
12015. 가장 증가하는 부분수열 2 (Java)
상단으로

티스토리툴바