java 205

bufferwriter에서 close와 flush

bufferwriter에서 flush는 bufferwriter에 담긴 문자열을 전부 방출하고, close는 버퍼를 닫는것으로만 생각했었다.그런데...코드를 확인해보니, close에 flush의 기능도 하고있음을 알게되었다. public void flush() throws IOException { synchronized (lock) { flushBuffer(); out.flush(); } } @SuppressWarnings("try") public void close() throws IOException { synchronized (lock) { if (out == null) { ..

개발 일반 2024.12.03

파일명 정렬 (자바, Java)

오랜만에 포스팅한다. 다름아닌, 모범답안을 기록하기 위해... 문제를 보고 처음에 들었던 생각은, '정규 표현식을 이용하면 좋지 않을까?' 였고, 이후 떠오른 생각은 '정규 표현식을 사용할 수 없다면, 반복문을 통해 숫자가 처음 나오는 인덱스, 다시 숫자가 나오지 않는 인덱스를 구하면 되지 않을까?' 였다. 정규 표현식은 암기하고 있지 않기도 하고, 어차피 chatgpt로 딸깍 물어보면 알려주긴 하니까...후자로 풀어보기로 했다. 중간에 효율적인 방법을 고민하다 정답을 이것저것 참조했는데, 배열보다 생성자를 활용하는 방법을 썼다. 배열이 좀 더 효율적인 느낌은 들지만, 자료형이 다른 변수들을 묶어 관리하기에는 아무래도 생성자를 활용하는 편이 편했다. 객체지향적인 깔끔한 코드가 되는 것은 덤. 내가 본 정..

취업 성공 후기

드디어 취업에 성공했습니다. 확정은 몇주전에 되었지만, 승전보를 이제야 울리게 되었네요. 2023년 초, 우수한 성적으로 학원을 수료했고, 자신감도 부풀어 있어 취업활동보다는 추가적인 공부를 위주로 했습니다. 학원 추천은 지원하지 않았고, 국민취업지원제도 상담사가 주었던 추천정도만 참고해서 지원하는 정도였어요. 그러나 몇달이 지나 매너리즘에 빠졌고, 학원을 빡세게 다녔던 보상심리 때문에 미뤄왔던 게임 등도 하면서 학업에 지장이 있었습니다. 그 과정에서 자존감도 한차례 떨어졌구요. 그 과정에서 정보처리기사도 50점대로 아쉽게 탈락, 다행히 SQLD는 합격했으나 그렇게 허무하게 상반기를 날려보냈지요. 하반기부터는 진지하게 고민했습니다. 저는 알고리즘 공부를 좋아했고 코딩테스트를 보는 기업을 원했으나, 나이와..

연속 부분 수열 합의 개수 (자바, Java)

오랜만에 알고리즘 풀이를 작성한다. 저번 공지대로, 백준허브를 통해 github에 자동커밋으로 기록하고 있었으나... 이 부분은 리뷰 사항을 블로그에 남기는 것이 적절하다 판단하여 작성하게 되었다. 처음에 바보같이 백트래킹으로 불려고 하다가, 백트래킹의 대표적 문제인 N-Queen 문제가 정답률 나락간거보고..아니다 싶어서 좀 더 단순하게 생각해서 풀었다. 배열의 순번에 나머지를 넣어서 연속순환시키자! 나와 비슷하게 푼 사람들이 대다수 있었다. import java.util.*; class Solution { static Set set; static int el; public int solution(int[] elements) { set = new HashSet(); el = elements.length..

10844. 쉬운 계단 수 (자바, Java)

문제 자체의 발상은 크게 어렵지 않았다. 자릿수를 하나씩 늘려나가면서, 가장 마지막 자릿수에 숫자를 붙이는 식으로 생각하였다. 문제는 엉뚱한 곳에서 일어났는데, n이 100까지 가는, 100자리 수가 대상이었기에 경우의 수를 따지면서 숫자가 굉장히 커졌다. 예제가 부실하여 직접 계산하거나 전체를 돌려볼 수 밖에 없었는데, 그냥 무지성 제출했던게 화근이 되었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static Double[][] dp; // 마지막 수와 자릿수에 따른 계단수의 갯수를 저장할 배열. public static void main(S..

1932. 정수 삼각형 (자바, Java)

기본 로직은 동적 계획법 패턴과 유사하다, 단, 앞에서의 최댓값이, 최종 최댓값 경로를 보장하는 것이 아니다. 따라서, 밑 지점 (끝지점) 부터 역순으로 나가는 Top-Down 방식을 활용해야 한다. '행별로 최대값' 을 구하는게 아니라, '(행, 열 좌표열을 가진)특정 지점에서의 최댓값을 구한뒤, 마지막 행에서 최대값을 구해주면 된다. 아무튼, 로직은 맞았는데 왜 틀렸냐고 한다면... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[][] tri; static int[][..

1149. RGB거리 (자바, Java)

동적계획법은 메모이제이션이라는 기법을 이용해서, 반복문이나 재귀를 돌리면서 이미 알아낸 값을 기록해가며 문제를 해결하는 기법이다. Top-Down 방식으로 하는 경우, 재귀를 이용해서 한계단씩 내려가는 방법을 쓰게 되고, Bottom-Up 방식으로 하는 경우, 반복문을 이용해서 처음부터 하나씩 올라가는 방법을 쓰게 된다. 문제를 풀 때, 아직 동적계획법에 대한 감이 잡힐랑 말랑 해서, 일단 백트래킹으로 풀었으나, ide에서는 작동하였음에도 백준에서는 시간초과가 나와버렸다. 값을 기록하지않고, 구했던 값을 또 구하다보니 성능에서 차이가 생긴 모양. 1. 백트래킹으로 푼 풀이, 시간 초과. import java.io.BufferedReader; import java.io.IOException; import ..

부족한 금액 계산하기 (자바, Java)

풀면서 어려운 부분이 있었던건 아니었는데, 한번 틀려서 띠용? 하고는 해결법을 찾음. 나는 반복문을 돌리지 않고, 고교때 배웠던 합공식 n(n+1)/2로 풀었는데, 이걸로 풀다보니, int로 받은 매개변수들끼리 계산하면서 int를 넘어 overflow 하는 경우가 생김. 따라서, 맨 처음 인자값을 long으로 미리 바꿔줘야 한다. 무식하게 반복문돌려서 하나씩 더하면, 이런 걱정 없음. class Solution { public long solution(int price, int money, int count) { long answer = 0; long cost = (long)price * count * (count+1) / 2; if (money

14889. 스타트와 링크 (Java, 자바)

아니 스크린샷 번짐이 왜이리 심하지?... 아무튼간에 오랜만에 업로드. 백준허브로 업로드할시, 정답 코드만 저장할 수 있어서, 틀린 경우, 오답노트처럼 기록하기에는 블로그가 나을것 같아 시간초과나 오답노트가 필요한 문제만 블로그에 기록하기로 했다. 일단 내가 알고있는 지식 : N과M 시리즈처럼 줄세우기 인데, 이걸 응용해서, start 팀을 줄세우고, 그 외에 구성원을 link팀으로 보내는 것이었다. 그 전후 과정은 그리 어렵지 않았으니... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; impo..

[PODO Music] 음악 스트리밍 사이트

한줄소개결제를 통해 준비된 곡을 재생 가능한 음악 스트리밍 사이트 진행기간2022.11.01 ~ 2022.11.17 기술 스택Java 11, Java Servlet, TomCat 8.5, JSP, Oracle11gHTML5, CSS3, JavaScript, JQuery ToolsEclipse 2022.6, SqlDeveloper, VSCodeMicroSoft Teams, GetterTown 팀 구성원팀원 5인. 관련 활동(디지털컨버전스) 공공데이터를 활용한 Springframework기반 웹 개발자 양성과정 세미프로젝트. 담당 내용프로젝트 총괄(팀장), ERD 통합 및 관리, 회의록 작성, GIT 총괄.음악 컨트롤러 제작, (관리자 모드) 공지사항 및 문의내역 페이지 제작. GitHub repositor..

개인 프로젝트 2023.01.10