개발 지식 기록 40

[메서드 정리] Math

◎ abs 절대값을 반환(int, long, float, double) int i = Math.abs(-10); //i=10 ◎ ceil /floor 주어진 값을 올림/버림하여 반환(double타입) double d = Math.ceil(10.1); //d = 11.0 double d1 = Math.ceil(-10.1); //d1 = -10.0 double d2 = Math.ceil(10.000015);//d2 = 11.0 double d3 = Math.floor(10.8); //d3=10.0 double d4 = Math.floor(-10.8); //d4=-11.0 ◎ max / min 주어진 두 값을 비교하여 큰 쪽 / 작은 쪽 반환 (int, long, float, double) double d =..

[메서드 정리] String

◎ charAt(int index) 해당 index에 있는 문자를 알려준다(char) String str = "Hello"; char c = str.charAt(1); // c='e' ◎ compareTo(String str) 문자열(str)과 사전 순서로 비교. 같으면 0, 사전 순으로 이전이면 음수, 이후면 양수 반환 int i = "aaa".compareTo("aaa"); // i=0 int i2 = "aaa".compareTo("bbb"); // i=-1 int i3 = "bbb".compareTo("aaa"); // i=1 ◎ concat(String str) 문자열(str)을 뒤에 덧붙인다. String s = "Hi"; String s2 = s.concat(" Friend"); // s2="..

[메서드 정리] Integer

매일 조금씩 코딩테스트를 풀기 시작하면서 느낀 것은 메서드가 생각이 안나는 경우가 꽤 많다는 것이다. 인터넷에서 검색하면 바로 찾을 수 있긴 하지만 매번 검색하기도 귀찮으니 내 블로그에 정리도 하고 이참에 최대한 암기도 할 생각으로 메서드들을 모아서 글을 올리려고 한다. 테스트를 진행하면서 수시로 추가할 예정이다. ◎ parseInt 문자열을 int 형으로 변환할 때 사용(Integer타입 정리라 parseInt지만 parseByte부터 parseDouble까지 전부 존재한다.) parseInt뒤에 진법을 설정하면 해당 진법의 수를 10진법으로 바꿔준다. int i = Integer.parseInt("1001"); int i2 = Integer.parseInt("100",2) //100(2) -> 4 i..

[자바의 정석] 개인적인 정리 글(1주차)

자바의 정석 책을 사고 조금씩 읽고 있었지만 좀처럼 진도가 나가지 않던 상황이었다. 블로그 글을 쓰면서 이번 기회에 확 끝내야겠다는 다짐을 했다. 기존에 아는 내용들은 제외하고, 읽으면서 새롭게 알게 된 부분들과 평소에 자주 헷갈리던 부분들만을 모아서 정리하려 한다. Chapter 01 chapter 1은 이클립스 설치 등 준비과정의 챕터라 특별하게 정리해야 할 내용은 없다. Chapter 02 ◎ 지역변수는 사용 전에 반드시 초기화가 필요하다. 클래스 변수와 인스턴스 변수는 초기화 생략 가능하다. ◎ 자료형 타입별 설명 자료형 저장 가능한 값의 범위 bit byte boolean false, true 8 1 char '\u0000' ~ '\uffff' (0~2^16-1, 0~65535) 16 2 byt..

Arrays.sort()와 Collections.sort()

낮은 레벨의 연습문제를 풀고 있는데 나는 배열에 담아서 Array.sort()를 썼는데 다른 사람들의 풀이를 보니 Collections.sort()를 많이 쓰는 것을 보았다. 그래서 Arrays.sort()와 Collections.sort() 차이를 한번 정리해보려고 한다. Arrays.sort() 배열을 오름차순으로 정렬한다. 숫자 > 대문자 > 소문자 > 한글 순서로 정렬한다. Arrays.sort(배열,Collections.reverseOrder())를 사용하여 내림차순으로 정렬한다. 기본형 배열의 경우 DualPivotQuicksort를 사용한다. Quicksort는 평균O(NlogN), 최악의 경우 O(N²)의 시간복잡도를 가진다. DualPivotQuicksort.sort()는 퀵정렬이 최악의..

표기법 정리

표기법이 틀려도 작동 자체는 문제가 없겠지만... 방구석에서 혼자 만드는 것이 아니니 이런 부분들은 당연히 지켜야 한다고 생각하기 때문에 정리해보려고 한다. 평소에 코드 작성할 때는 익숙하게 하다보니 크게 신경을 안쓰고 있긴 했는데 이왕이면 제대로 알고 쓰면 좋으니까^^ ◎ 파스칼 표기법 -> java에서 클래스를 정의할 때(인터페이스에도 사용), C#에서 변수나 클래스를 선언할 때, 파이썬의 클래스 정의 ex) Date, LocalDateTime, String, Scanner ◎ 카멜 표기법 -> java에서 변수, 메소드를 정의할 때 ex) void speedTest(){ } ◎ 언더바 표기법(스네이크 표기법) - 소문자 -> c,c++,php,파이썬 ex) void speed_test(){ } ◎ ..

String vs StringBuffer vs StringBuilder

코딩테스트 연습 문제를 풀 때 아무 생각 없이 String으로 작성했는데 다른 사람들의 풀이를 보면 StringBuilder를 쓴 것을 자주 보곤 했다. 최근에 문자열에 계속 추가를 해야 하는 과제가 있었기에 이번 기회에 String과 StringBuffer, StringBuilder의 차이를 정리하려고 한다. String String클래스는 인스턴트를 생성할 때 지정된 문자열을 변경할 수 없다.(불변성) 기존 문자열에 +로 문자를 추가한 경우 보기에는 내용이 변경되는 것 같지만, 새로운 내용의 문자열이 형성되고 그 메모리 영역을 가리키도록 변경된다. 기존 메모리 영역은 Garbage로 남아있다가 GarbageCollection에 의해 사라진다. 따라서 변경이 빈번한 경우 성능이 떨어질 수밖에 없다. S..

큐(Queue)

하루에 하나씩 자료 구조를 정리하고 있다. 직접 써보면서 정리하는 것을 좋아하지만 손글씨가 매우 좋지 않아 오히려 가독성이 떨어지는 슬픈 상황ㅠㅠ 학창시절 필기했던 노트를 나중에 다시 봤을 때 알아보기 힘들었던 경험이 있기에 블로그로 적어본다. (애초에 인터넷에 있는 이미지들이 내 그림보다 고퀄리티다.) Queue 선입선출 (First In First Out; FiFO)의 자료구조. 먼저 들어온 데이터가 먼저 나간다. 자료가 나가는 부분을 Front, 자료가 들어오는 부분을 Rear(Back이라고도 한다) 입력동작을 Enqueue, 출력동작을 Dequeue라고 한다. 자바에서의 Queue 사용 // 선형 자료구조 - 큐 import java.util.LinkedList; import java.util.Q..

이클립스 아이콘이 작게 나올 때 해결 방법!

전에 쓰던 노트북이 1366 x 768 해상도였다. 화면에 나오는 정보량은 적었지만 아이콘이 큼직하게 나와서 보기는 편했었다. 이번에 바꾼 그램은 2560 x 1600 해상도다. 권장 확대 수준인 150%까지 올려서 쓰고 있는 상황인데 이클립스에서 아이콘이 너무 작아서 힘들었고 해결 방법을 검색했다. (확대 비율을 더 올릴 수도 있겠지만 아직 노안이 아니라는 자존심의 문제가...글자 크기는 괜찮은 상황이기도 했다.) eclipse 디렉토리에 있는 eclipse.ini 파일을 열어서 마지막 줄에 다음 내용을 추가한다. -Dswt.enable.autoScale=true -Dswt.autoScale=200 -Dswt.autoScale.method=nearest autoScale 뒤에 수치를 변경하면 마음대로 ..

스택(Stack)

Stack 후입선출 (Last In First Out; LIFO) 자료구조로 마지막에 들어온 데이터가 먼저 나가는 구조이다. (First In Last Out;FILO 라고 하기도 함) 그림에서 확인할 수 있듯이 가장 마지막에 들어온 데이터가 먼저 나간다. (한글이나 엑셀 등의 되돌리기 기능과 유사하게 생각하면 될 듯 하다.) 구조의 밑을 Bottom이라고 하며, 메모리에 새로 데이터가 들어오고 나가는 위치가 Top. 데이터 입력 연산은 Push, 데이터 출력 연산은 Pop이라고 한다. 조회연산은 Peak라고 하는데 Top이 가리키는 데이터를 조회할 수 있다.(단순 조회일 뿐 데이터 변화 없다.) 자바에서의 Stack 사용 import java.util.Stack; public class Main { p..