전체 글

전체 글

    [우아한테크코스 5기] 프리코스 1주차 회고

    [우아한테크코스 5기] 프리코스 1주차 회고

    1주차 - 온보딩 깃허브 링크 GitHub - MoonJeWoong/java-onboarding: 온보딩 미션을 진행하는 저장소 온보딩 미션을 진행하는 저장소. Contribute to MoonJeWoong/java-onboarding development by creating an account on GitHub. github.com [시작하면서] 프리코스 첫 주차 onBoarding 미션을 진행하기 직전 진행했던 1시간 가량의 OT에서 가장 마음에 와닿았던 내용으로 1주차 회고를 시작하고자 한다. “현장에서 정말 중요하게 생각하는 역량들이 많은데 프로그래밍 구현 역량, 설계 역량, 추상화 역량 등이 개발자 역량으로서 가장 중요한 것들이라고 생각한다.” “지원자들이 우아한 테크코스 프리코스를 이수하며 ..

    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] String to Integer, Integer to String

    String to Integer import java.util.Arrays; // string to int String str = "100"; int num = Integer.parseInt(str); // string array to int Array String[] strArr = {"100", "200", "300"}; int[] intArr = Arrays.stream(strArr) .mapToInt(Integer::parseInt)//mapToInt(x->Integer.parseInt(x)) .toArray(); System.out.println(Arrays.toString(intArr));//[100,200,300] Integer to String import java.util.Arrays; ..

    배열(Array)과 리스트(List)

    배열(Array) 배열은 여러 개의 데이터들을 하나의 이름으로 묶어서 관리하기 위한 자료구조이다. 배열은 각 저장공간을 가리키는 index를 갖고 있으며 저장되어 있는 값에 접근할 때 이 index를 통해 접근한다. 배열은 초기 생성시 크기를 정해서 생성해주어야 하며 한 번 생성된 이후에는 크기를 변경할 수 없다. 초기에 정의된 크기대로 연속된 메모리 공간을 점유한다. 즉 논리적 저장 순서와 물리적 저장 순서가 일치한다. 장점 메모리 공간이 연속적이어서 관리가 편하다. index를 이용하기 때문에 데이터 조회가 빠르다. 단점 배열의 크기가 초기 생성시에 정해지면 그 이상의 데이터를 저장할 수 없다. 이를 변경하기 위해서는 새로운 배열을 생성해야 한다. 배열의 중간에 데이터가 삭제되면 빈 공간이 생겨 메모..

    java.util.Arrays 정리

    Arrays 클래스 개요 Arrays 클래스는 배열을 조작하기 위한(정렬 및 검색 등) 다양한 메소드들을 포함하고 있는 클래스이다. 이 클래스는 배열을 리스트처럼 다룰 수 있도록 하게 해주는 static factory를 포함한다. ※ static factory : 클래스의 인스턴스화, 즉 객체 생성을 constructor(생성자)가 아닌 static 메소드로 하는 것을 static factory 메소드라고 한다. 대표적인 Arrays 메소드 메소드 설명 static List asList(T...a) 전달받은 배열을 고정 크기의 List로 변환하여 리턴 static int binarySearch(Object[] a, Object key) binary search 알고리즘을 이용하여 주어진 배열에서 key값..

    [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..