Programming Languages 17

[JAVA] 문자열 String | StringBuffer | StringBuilder 각 차이점 - 성능의 차이!

자바에서 문자열을 사용할 때 여러가지 방법이 존재한다. char 형태를 이어붙여 문자열을 만들어야하는 C/C++와는 달리, 자바에서는 기본으로 문자열이 제공되어 상대적으로 매우 편리하다. 우리가 가장 많이 알고 있는 기본 형태인 String 과 더불어 자바에서 문자열을 표현하는 방법은 다음과 같다. 1) String 2) StringBuffer 3) StringBuilder 먼저 세 가지 방법으로 작성한 다음 코드를 보자. public class Main { public static void main(String[] args) { String str = new String("App"); StringBuffer strbuffer = new StringBuffer("App"); StringBuilder st..

[JAVA/자료구조] 자바 Stack 사용법 / 스택 예시 총 정리 - 문자열 뒤집기, 괄호 짝 맞추기

▷ 스택(Stack)이란? 스택(stack)은 LIFO(라스트 인 퍼스트 아웃) 원리를 기반으로 구성된 요소들의 집합을 나타내는 추상적인 데이터 유형이다. 스택에서 수행되는 작업은 크게 세 가지로 구분이 가능하다. 요소를 스택의 맨 위에 추가하는 push, 스택의 맨 위 요소를 제거하는 pop, 스택의 맨 위에 있는 요소를 제거하지 않고 액세스하는 peek ▷ 스택(Stack)의 특징? 스택 구조는 위로 쌓아 올린 동전 혹은 접시와 같다. LIFO(Last-In First-out) > 스택에 마지막으로 추가된 요소가 가장 먼저 제거 (가장 나중에 쌓은 접시가 먼저 제거 됨) 스택의 한쪽 끝에서만 액세스 가능 > 일반적으로 스택의 'top'이라고 하는 한쪽 끝에서만 추가 및 제거된다. 일정한 시간 복잡성 ..

[JAVA] 자바 정수형 사용하기 / int형과 long형의 정확한 차이점

자바에서 정수를 담을 수 있는 변수 유형은 int / long 두 가지가 있다. 다음은 두 자료형의 차이를 정리한 것이다. int (4바이트) -2,147,483,648부터 2,147,483,647까지의 값을 저장할 수 있다. long(8바이트) int가 보유할 수 없는 더 큰 정수를 보유할 때 사용한다. -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807까지의 값을 저장할 수 있다. int형을 사용해 코드를 짜는 데 알 수 없는 오버플로우 오류가 난다면, 자료형을 적절히 사용했는지 의심해보자.

[JAVA] 자바에서 오름차 순/내림차 순 정렬하기 - Arrays.sort , 내림차 순 정렬 시 유의 사항

자바 배열을 정렬하기 위해서는 import java.util.Arrays; 을 가장 먼저 임포트해줘야 한다. 그리고 선언 된 배열을 오름차 순/내림차 순인지에 따라 다음와 같이 정렬한다. 배열 A를 오름차 순으로 정렬하기 => Arrays.sort(A); > 결과 input output {3,1,7} {1,3,7} 배열 A를 내림차 순으로 정렬하기 => Arrays.sort(A,Collections.reverseOrder()); 혹은 Arrays.sort(A,Comparator.reverseOrder()); > 예상 결과 input output {3,1,7} {7,3,1} 그러나 예상 결과와 다르게 오류가 뜰 것이다. error: no suitable method found for sort(int[],C..

[JAVA] 자바에서 제곱/제곱근 구하는 방법? - Math.pow(), Math.sqrt() (반복문 없이 쉽게 계산하기)

정수의 제곱 혹은 제곱근을 구하기 위해 반복문을 사용해본 적이 있는가? 수학 공식으로 계산하면 쉬운데, 코드로 구현하게 되면 여간 복잡해지는 게 아니다. 이 때 자바 Math 클래스를 활용하면 단순하고 쉽게 계산이 가능하다. Math 클래스란? java.Lang 패키지에 포함된 클래스로 수학과 관련된 일련의 작업들을 처리할 수 있다. Math.pow(double a, double b) ----> a^b 제곱 구하기 활용 예시 ) Math.pow(3,2) ----> 3^2 (3의 2승=9) Math.pow(7,3) ----> 7^3 (7의 3승=343) 체크포인트 ) return값과 a,b 값 모두 double 형태임을 감안하자. Math.sqrt(double a) ----> a의 양의 제곱근 구하기 활용..