코딩테스트

    05. Stack & Queue

    Stack 기본적인 사용법 public static void main(String[] args) { int[] arr = {10,20,30,40,50,60}; Stack stk = new Stack(); for(int x : arr) stk.push(x); // Stack에 값 추가하기 System.out.println(stk.pop()); // Stack 객체에서 가장 상단에 위치하고 있는 값을 삭제하고 그 값을 반환한다. System.out.println(stk.peek()); // Stack 객체에서 현재 가장 상단에 위차하고 있는 값을 반환한다. pop()과 달리 실제 값을 Stack에서 삭제하지는 않는다. System.out.println(stk.size()); // Stack 객체에 저장된 데..

    04. HashMap, TreeSet (해쉬, 정렬지원 Set)

    HashMap의 기본적인 사용법 import java.util.HashMap; import java.util.Scanner; public static void main(String[] args) { Scanner sc = new Scanner(System.in); HashMap mp = new HashMap(); //HashMap 객체 생성, 제네릭스로 키 타입과, 값 타입을 명시해주어야 한다. String str = sc.nextLine(); //HashMap 객체에 데이터 넣기 for(char x : str.toCharArray()){ mp.put(x,mp.getOrDefault(x,0)+1); //생성한 HashMap 객체 내에 존재하는 키라면 그 키의 값을 1증가시켜 갱신하고, 없다면 기본값 0에..

    03. Two Pointer Algorithm & Sliding Window

    일반적으로 Two Pointer Algorithm은 2중 반복문을 통해 탐색해야하는 O(n^2) 코드를 O(n)으로 개선하는데 많이 사용된다. 해당 알고리즘은 '이동평균 구하기', '서로 다른 정렬된 배열의 요소값 합치기', '부분수열 탐색' 문제 등에서 사용될 수 있다. 아래는 Two Pointer Algoritm을 사용하는 대표적인 문제인 '요소값들의 합이 특정 값이 되는 연속 부분수열 구하기' 문제의 코드이다. 맨 처음 lt와 rt를 0번 인덱스로 초기화 해준다. 이후 lt~rt 사이의 요소값들의 합이 특정 값이 되는지 확인하면서 조건에 따라 lt와 rt값을 변화시킨 직후 lt와 rt 사이 요소값들의 합이 특정 값을 만족하는 경우 ans 변수를 1씩 카운트 해준다. 여기서 포인트는 rt값의 이동을 ..

    [Java] Math.round 관련

    Java 에서 숫자에 대한 반올림 기능을 수행할 수 있는 메소드로 Math.round()를 제공한다. ※ 참고로 올림과 내림은 Math.ceil() / Math.floor() 이다. import java.lang.Math; float varfloat1 = 5.2f; float varfloat2 = 5.8f; System.out.println(Math.round(varfloat1)); // 5 System.out.println(Math.round(varfloat2)); // 6 기본적으로 round 메소드는 인자로 주어지는 수의 소수점 첫째 자리에서 반올림한 수를 반환한다. float varfloat = 5.2f; double vardouble = 5.8f; int varint = Math.round(va..

    01. String 파트

    01. 문자 찾기 인스턴스 메소드를 사용할 때는 해당 인스턴스를 메인 함수 내에서 생성한 이후에 사용할 수 있다. 스캐너 문법 Scanner sc = new Scanner(System.in); String str = sc.next(); // 문자열을 한 줄 읽어들임 char c = sc.next().charAt(0); // 문자열을 한 줄 읽어들인 후 0번째 인덱스의 문자에 접근 sc.nextByte() sc.nextInt() //정수형 입력 및 리턴 sc.nextShort() sc.nextLong() sc.nextFloat() sc.nextDouble() sc.nextBoolean() sc.next() // 공백 문자를 기준으로 한 단어를 읽음 sc.nextLine() // 개행 문자를 기준으로 한 줄..