본문 바로가기

자바70

백준 2941번 크로아티아 알파벳 이클립스 자체 라이브러리 함수를 쓰지 않고 풀려다보니 너무 if문을 남발하는 것 같아서 이 문제는 그냥 썼다. replace를 사용해서 크로아티아 알파벳의 알파벳을 그냥 임의의 하나의 알파벳으로 바꿔주고 전체 문장의 길이를 출력한다. 2018. 7. 2.
백준 5622번 다이얼 이 문제는 단지 여러 가지 경우 수를 if문으로 받아서 처리했는데 뭔가 비효율적인 것 같아서 다른 사람의 코드도 첨부했다.- 내 코드 - 다른 사람 코드 이 사람은 알파벳에 해당하는 숫자 값을 먼저 다 배열에 넣은 후에, 입력한 문자열의 아스키값을 비교해 일치하면 일치하는 인덱스의 값을 모드 더하는 방식을 취했다. 2018. 6. 29.
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.
백준 2908번 상수 배열에 입력받은 수를 넣어서 그냥 배열을 역순으로 출력한 값을 비교하면 되지만, 라이브러리 함수 사용을 최대한 자제하기 위해서 그 방법은 사용하지 않았더니, 그냥 수학적으로 푸는 방법뿐인 것 같다. 2018. 6. 29.
백준 1316번 그룹 단어 체커 문제를 풀어도 항상 막히고 고민을 해봐도 결국 남의 코드를 보게된다. 그래도 그 안에서 내가 원하는 방식으로 하기 위해 이것 저것 짜집기를 해서 나의 코드로 바꾸는 과정을 통해 실력이 향상 되길바란다. 버퍼스트림과 스트링토큰나이저를 사용해서 풀어보고 싶어서 사용해보았고, 다른 사람의 코드 중 boolean을 사용해서 체크를 하는게 좋아보였다. 단어의 길이가 몇개가 되든지 상관없이 어차피 알파벳은 26개 이므로 boolean[26]을 선언하고, 현재 문자와 이전 문자가 같지않을 때만 동작하는데, 현재 문자가 이전에 나왔다면 더이상 체크를 할 필요가없으니 break를 사용해 건너 띄고, 아닌 경우에는 아닌 위치를 true로 바꿔주어 계속 진행해 나간다. 2018. 6. 29.
백준 1157번 단어 공부 나는 이 문제를 풀 때, 대문자와 소문자의 아스키코드 차이 값이 32이기 때문에 소문자에서 32를 뺀 후 그 숫자들 가운데 빈도수를 계산해보려 했지만 실패했다. 그래서 다른 사람들의 코드를 봤더니 어차피 대문자로 출력을 해야하기 때문에 대문자로 바꿔놓고, 배열에 담을때 a 의 아스키값 만큼 빼주면 인덱스 0부터 A값이 차례대로 들어가게 된다. 그래서 이 값을 max값과 비교해서 가장 높은 빈도수의 경우를 구하고 아니면 ? 를 출력하면 된다. 2018. 6. 27.