Java/[도서] 자바의 정석(14)
-
StringBuffer클래스와 StringBuilder클래스
자바의 정석 Chapter 소제목 9. java.lang패키지와 유용한 클래스 1.1.3 StringBuffer클래스와 StringBuilder클래스 알고리즘 문제를 풀거나 남들이 적어둔 코드를 보다 보면 문자열을 String이 아닌 StringBuffer 또는 StringBuilder를 사용해서 구현한 것을 볼 수 있었습니다. String클래스, StringBuffer클래스, StringBuilder클래스를 비교 분석하면서 관련 메서드까지 정리하는 시간을 가져보도록 하겠습니다. StringBuffer클래스 String클래스는 지정된 문자열을 변경할 수 없지만 StringBuffer클래스는 변경이 가능합니다.(mutable) 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있으며 , Strin..
2022.04.29 -
배열의 얕은 복사, 깊은 복사
자바에서 객체를 복사할 때는 얕은 복사, 깊은 복사가 있습니다. 얕은 복사의 경우 객체의 주소 값을 복사하는 것이고 깊은 복사는 실제값을 복사해서 이 값을 새로운 메모리 공간에 복사하는 것입니다. 얕은 복사의 경우 여러 객체가 같은 주소를 참조하고 있기에 하나의 값이 변경되면 다른 대상의 값 또한 변경되는 문제가 발생하지만 깊은 복사는 이러한 문제가 발생하지 않습니다. 1차원 배열의 얕은 복사(Shallow Copy) public class Copy { public static void main(String[] args) { int[] a = {1,2,3,4,5}; int[] b = a; System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 5] System..
2022.04.27 -
배열 오름차순, 내림차순 정렬하기
알고리즘 문제를 풀 때, 입력을 받은 후 정렬하는 경우가 많습니다. 저의 경우 오름차순은 여러 번 사용했던 터라 메서드를 알고 있었지만, 내림차순을 할 때는 잠시 망설였던 경험이 있습니다. 독자분들은 바로바로 사용하실 수 있게 이번 기회에 암기하고 가시면 좋을 것 같습니다. 공부 후 관련 알고리즘 문제까지 푸시는 것을 추천합니다. [백준 2217번] 로프 [백준 2217번] 로프 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는.. lealea.tistory.com 배열의 오름차순 정렬 Arrays.sor..
2022.04.25 -
형변환 (문자형↔정수형↔실수형)
알고리즘을 풀다 보면, 같은 타입만 계속해서 있는 것이 아니라 서로 다른 타입간의 연산을 수행해야 할 일이 자주 발생합니다. 오늘은 문자형↔정수형↔실수형 형변환을 정리해보는 시간을 가져보겠습니다. 문자형 → 정수형, 실수형 String to Int String to Long, Short String to Double, Float 정수형, 실수형 → 문자형 Int to String Double, Float to String 정수형 ↔ 실수형 Int to Double, Float Double, Float to Int 문자형 → 정수형, 실수형 String to Int Integer클래스의 parseInt( )와 valueOf( ) String str = "1004" int num1 = Integer.pars..
2022.04.23 -
String 클래스 메서드
자바의 정석 Chapter 소제목 9. java.lang패키지와 유용한 클래스 1.1.2 String클래스 - 생성자와 메서드 알고리즘 문제를 풀 때 String클래스 메서드가 자주 쓰입니다. 이 메서드만 알고 있었어도 몇 시간을 단축할 수 있던 적이 있어서 이번 기회에 자바의 정석에 있는 내용을 정리하고 가려고 합니다. 메서드 / 설명 예제 결과 String(char[] value) char[ ] → String 변환 char[ ] c = {'H', 'e', 'l', 'l', 'o'}; String s = new String(c); s = "Hello"; char[ ] → String은 .toCharArray( ) 사용하여 변환 String(StringBuffer buf) StringBuffer → S..
2022.04.21 -
💡 10진수 ↔ 2진수, 8진수, 16진수 변환 방법
백준 문제를 풀면서 꼭 알고 넘어가야 할 개념이 생겨서 이 글을 포스팅하게 되었습니다. 예제를 통해 이해한 후 이진수 문제로 넘어가서 풀어보는 것도 좋을 것 같습니다. [백준 3460번] 이진수 [백준 3460번] 이진수 https://www.acmicpc.net/problem/3460 3460번: 이진수 양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는.. lealea.tistory.com 10진수 → 2진수, 8진수, 16진수 변환 java.lang.Integer클래스의 toBinaryString( ), toOctalString( ), toHexString( ) 메서드를 이용하..
2022.04.20