전체 글

    [자바/JAVA] StringBuffer / StringBuilder

    StringBuffer란? String 클래스와는 다르게 StringBuffer 클래스는 인스턴스의 값을 변경할 수 있는 가변 클래스(mutable class)이다. StringBuffer는 내부적으로 버퍼라는 독립적인 공간을 가지는데 기본값은 16이다 (문자 16개 저장 가능) 물론 생성자를 통해 버퍼의 크기를 설정해줄 수도 있다. String으로 문자 결합 시 새로운 인스턴스가 계속해서 생기기 때문에 메모리 공간도 낭비되고 속도도 느려지게 되는데 StringBuffer 클래스는 기존 인스턴스에 문자열을 추가할 수 있기 때문에 공간 낭비도 없고 속도도 빨라집니다. StringBuffer에서 append() 메서드를 통해서 문자열을 추가할 수 있습니다. StringBuffer sb = new String..

    [백준/3052번] 나머지

    www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 이 문제도 간단한 문제이고, 배열을 차례대로 돌면서 값을 비교하면 되는 문제이다. 배열로 푸는 문제이지만 HashSet을 이용하면 정말 간단하게 풀 수 있는 문제이다. 풀이 🎉 1. BufferedReader + 배열 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class BOJ_3052 { public ..

    [백준/1546번] 평균

    www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 오늘도 배열 알고리즘을 풀어봤습니다. 그렇게 어렵진 않은 문제이고 2가지 방법을 이용해서 풀어봤습니다 🎉 1. Scanner + 배열 2. BufferedReader + StringTokenizer + 배열 풀이 🎉 1. Scanner + 배열 import java.util.Arrays; import java.util.Scanner; public class Main { public static void m..

    [자바/JAVA] String 클래스

    자바에서 문자열을 다루기 위해 제공하는 String 클래스는 정말 중요하기 때문에 잘 알아두는 게 중요합니다 ㄹㅇ로! Immutable이란? String 클래스의 가장 큰 특징은 "Immutable" 하다는 것입니다. Immutable은 불변의 라는 의미를 가지고 있습니다. 즉, 한 번 생성된 String 인스턴스는 값을 읽어 올 수만 있고 변경은 할 수 없다는 말과 같습니다. 예를 들어 "+" 연산자를 이용해서 문자열을 결합하는 경우 인스턴스 내의 값이 바뀌는 것이 아니라 새로운 값을 가진 String 인스턴스가 만들어지는 것입니다. 덧셈 연산자를 이용해서 문자열을 결합 시 여러 개의 String 인스턴스가 생성되어 메모리에 올라가기 때문에 결합 횟수는 되도록이면 최소화하는 것이 메모리에 부담이 가지 ..

    [자바/JAVA] 문자열 분리 (StringTokenizer) 🔥

    평소에 많이 사용되지만 본인은 자주 사용하지 않았던 StringTokenizer을 정리해보려고 한다. StringTokenizer는 하나의 문자열을 여러 개의 문자열로 분리하기 위해 사용한다. 문자열을 분리하기 위한 기준 문자를 구분자라고 한다. 구분자로 분리된 문자열을 토큰이라고 함 StringTokenizer는 항상 문자 타입을 리턴하기 때문에 숫자로 사용 시에는 Integer.parseInt()를 사용하여 파싱 해서 사용해야 한다. 복잡한 형태의 구분자를 사용해서 문자열을 나눌 시에는 정규식을 사용하는 메서드를 사용하는 것이 좋다. (split, Scanner) 생성자 StringTokenizer(String str) 구분자를 받지 않는 생성자 StringTokenizer(String str, St..