본문 바로가기

StringBuffer4

[level.2] 프로그래머스 전화번호 목록 + 삽질 문제 설명전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.제한 사항phone_book의 길이는 1 이상 1,000,000 이하입니다.각 전화번호의 길이는 1 이상 20 이하입니다.입출력 예제phone_bookreturn[119, 97674223, 11955.. 2018. 10. 9.
StringBuffer를 사용하는 이유 StringBuffer자바에서 String은 불변객체이다. 즉, 한번 생성되면 그 내용을 바꿀 수 없다는 뜻이다. String hello = "Hello"; 라는 문장이 있을 때, 우선 "Hello"라는 문자열 인스턴스를 메모리에 생성한다.그리고 그 레퍼런스를 hello라는 문자열 변수에 대입한다. hello는 "Hello"라는 문자열 자체는 아니고 단지"Hello"라는 문자열 객체를 가리키는 레퍼런스이다. (C의 포인터와 비슷하다) hello += " Mr,HarryPorter";위 문장이 실행되면 hello 객체의 내용은 "Hello Mr,HarryPorter"가 될 것이다.단순히 문자는 축적된다고만 생각하고 있었을 텐데, 내부적으로 보면 hello = new StringBuffer(hello).ap.. 2018. 6. 29.
프로그래머스 정수 내림차순으로 배치하기 (level.2) 문제 : reverseInt 메소드는 int형 n을 매개변수로 입력받습니다. n에 나타나는 숫자를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. n은 양의 정수입니다. 이 문제를 푸는데 상당히 애를 먹었다. 배열에 문자형으로 저장을 할지, 정수형으로 저장할지 이것저것 해보다 정렬을 해야할 것 같아서 결국 substring을 사용해 정수형으로 저장을했다. 정렬은 버블정렬로 간단하게 구현하였으나, 마지막에 정렬한 배열을 다시 정수로 변환하는 과정에서 다시 막혔다. 각 자리수 만큼 10의 거듭제곱을 해주어 다 더해주는 방식으로 값을 구하긴 했으나 이 과정에서 스레드가 발생한다. 그래서 결국 검색을 했더니, 쓰레드를 제공해주는 StringB.. 2018. 2. 19.
자바 String, StringBuilder, StringBuffer 차이점 비교 자바에서 문자열을 나타낼 때 String, StringBuilder, StringBuffer 방식으로 나타낼 수 있다.하지만 무슨 차이일까? 궁금해서 찾아보았다.String은 보통 불변의 속성을 가지고 있다. 위 처럼 str에 새로 문자를 저장하면 새로 저장된 문자가 출력된다. 하지만 불변속성이기 때문에 abcd값은 버려지지않고 가비지컬렉터에 저장된다. 반면에 StringBuilder, StringBuffer는 가변방식이며, append()메소드를 사용하여 문자열을 추가한다. 사용 방식은 똑같지만 이 둘의 차이점은 동기화이다. StringBuffer는 동기화를 제공하기에 쓰레드 사용시 사용을 하게된다. 그런 이유로 속도는 StringBuilder에 비해 느리다.그렇기 때문에 상황에 맞게 적절히 사용하는 .. 2018. 2. 7.