백준 시작!
문자열을 자르기 위해 지금까지는 StringTokenizer 클래스를 써왔는데... 백준을 풀다보면 split을 사용하는 사람들이 많았다. split은java 뿐만 아니라 C, Python 등에도 있어 보다 친숙했다. 과연 둘중 어떤 방법이 적합할지 알아보았다.java
정말 간단한 문제이지만 런타임에러가 났다. Intellij에서 출력이 정확히 되는데 대체 뭐가 문제인지 몰랐다. > 결론은 int가 아니라 long 타입을 써야했기 때문이었다! 입력받는 수가 10의 12승까지 가능했으므로 이참에 java에서 '정수' 타입을 정리해
백준을 풀다보니 StringBuilder를 사용하는 사람들이 많았다. 기존의 String 객체를 더하는 + 는 새로운 String 객체를 생성하여, 성능이 좋지 않다.String을 연결할 때 새로운 객체를 생성해야 하는 이유는, String객체는 변경할 수 없기 때문이
지금까지 BuffereReader를 사용해서 입력을 받고 있었는데, 백준에서 다른 코드들을 보니 System.in.read()를 사용하는 사람들이 많았다. 특히 아스키코드를 이용하려 할 때 유용할 것 같아 정리해보았다!먼저 BufferedReader를 활용해서 백준 1
백준 1152번 을 풀다가, 예제가 제대로 출력되어 채점을 돌렸는데, 런타임 에러가 나왔다. 처음 제출한 코드 꽤 긴 시간 고민해보다가, intellJ에서 문자열에 아무것도 입력하지 않고 엔터만 눌렀더니 드디어?오류가 발생했다! 오류 분석 > 오류가 난 부분은 문장이 공백으로 시작되면, 그 공백을 단어 수에서 제외하도록 한 부분이었다. > 그런데 아무...
문제 링크 첫 번째 시도 읽어들인 문자열을 거꾸로 저장한 다음, 두 문자열 배열을 비교하려 했다. 오류가 나서 다시 입력 배열과 거꾸로 저장한 배열을 하나하나 출력해봤는데, 동일했다.. . 💡 .equals() 대체 뭐가 문제인지 모르다가 .equals()에
문제 링크 첫번째 제출 💡 개선해보기 기존 코드 나는 k번째 약수를 찾을 때까지 반복하도록 했고, count값이 k보다 작다면 k번째 약수가 없는 것이므로 0을 출력하도록 했다. 개선 count가 k가 될 때까지 반복하지 않고, 그냥 count가 k이면 res
24262번 문제 문제 링크 풀이 24264번 문제 문제 링크 풀이 > 입력값을 주의하자! 500,000까지 입력 가능한데, n의 제곱을 계산할 것이라서 Long 타입으로 선언해야 한다! [이전 포스팅](https://velog.io/@jiiina/Java-
문제 문제 링크 풀이 방법 1 3차항의 시간복잡도인 것은 명백하니 일단 n(n-1)(n-2)로 잡고, 예제 출력에 맞추어 6을 나누었다는 풀이도 있었다. 빠른 시간 내에 풀기 위해서는 나쁘지 않은 방법인 것도 같다. 방법2 고등수학에서의 조합을 이용하는 풀이를
문제 https://www.acmicpc.net/problem/24313 틀린 풀이 💡 반례 예제로 주어진 것들은 제대로 나오는데 채점 결과 틀리다고 나와서 고민하다가.. 결국 백준에서 질문게시판을 참고해보니, 반례로 다음 입력을 넣어보라는 답변이 있었다. >7
문제 https://www.acmicpc.net/problem/2563 > 이 문제의 키포인트는 겹치는 부분을 제외하는 것! 각 색종이의 면적에서 겹치는 부분을 빼려고 삽질을 하다가... 생각해보니 색종이 2개만 겹칠 수 있는 게 아니라, 전부 겹칠 수도 있고, 각 색종이 면적이 1\1도아니고 10\10이라 너무 복잡했다. 도저히 안 풀려서 결국 검...