CS

CS/Algorithm

[백준:1935] 후위 표기식2 - JAVA

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; 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()); int[] arr = new int[N]; Stacks = new Stack(); String str = br.readLine(); for(int i = ..

CS/Algorithm

[ 백준 10799 ] : 쇠막대기 - JAVA

import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String sen = scan.nextLine(); Stack stack = new Stack(); int sum = 0; for(int i = 0; i < sen.length(); i++) { if(sen.charAt(i) == '(') stack.push("("); else { if(sen.charAt(i - 1) == '(') { stack.pop(); //레이저였던 ( 를 빼주기 sum += stack.size(); //레이저니까 ..

CS/Algorithm

ArrayList와 LinkedList의 차이점 [ Java ]

ArrayList 는 데이터를 배열에서 관리한다. 데이터의 추가, 삭제를 위해 데이터의 추가, 삭제를 위해 임시 배열을 생성해서 데이터를 복사하는 방법 등을 사용한다. 시간 복잡도 -삭제, 삽입 : O(n) -데이터 검색 : O(1) : get(int index)를 통해 굉장히 빠르게 검색할 수 있다. LinkedList는 데이터를 저장하는 각 노드가 이전 노드와 다음 노드의 상태만 알고 있는 것 시간 복잡도 -삭제, 삽입 : O(1) (이전 노드와 다음 노드를 참조하는 상태에서) -데이터 검색 : O(N) : head노드부터 탐색을 해야함

CS/Algorithm

[백준 : 10773] 제로 - JAVA

import java.util.LinkedList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); LinkedList list = new LinkedList(); //입력받기 int listSize = scan.nextInt(); int num; for(int i = 0; i < listSize; i++) { num = scan.nextInt(); if(num == 0) { list.pollLast(); //list.remove()는 list가 비어있을때 NoSuchElementException예외를 던진다 //list.poll..