자바15 자바 버전별 특징 토이 프로젝트에서 개발환경 선정을 위해 버전별 특징을 파악해서 알맞는 것으로 고르기로 하였다. 해당 블로그 내용을 보며 가볍게 파악했다. https://velog.io/@ljo_0920/java-%EB%B2%84%EC%A0%84%EB%B3%84-%EC%B0%A8%EC%9D%B4-%ED%8A%B9%EC%A7%95 java 버전별 차이 & 특징 Java 버전별 특징들을 찾아보면서 좋은 글이 있어 해당 글을 정리한 포스팅입니다.최신 Java 버전은 이제 6개월마다 따른다. 수많은 새로운 버전이 출시됨에 따라 기본적으로 다음과 같은 사용 시 velog.io https://lob-dev.tistory.com/82 소소한 글 - Java Version 별 변경 내역 정리하기 (9~18) 회사에서 개발하는 레거시 프.. 프로그래밍공부(Programming Study)/자바(JAVA) 2022. 12. 3. 자바답게 프로그래밍하기 전날 귀인을 뵙고 난 뒤의 많은 화두가 던져졌지만, 그중 먼저 꽂힌 부분은 "자바를 자바답게 사용한다는 것은 무엇일까?"였다. 혹시 자바 잘 사용하시나요? 어느정도 쓰시나요? 해당 물음에 본인은 중언부언 설명을 이어나갔으나 결국은 나의 답변은 자바를 잘 사용하지 못하고 있다는 것이었다. 이 물음에 대한 답을 하기 위해서 1. 자바(특정 프로그래밍 언어)가 무엇인지 아나요? 2. 자바(특정 프로그래밍 언어)를 사용한다는 것이 무엇인지 아나요? 3. 자바(특정 프로그래밍 언어)를 잘 사용한다는 것이 무엇인지 아나요? 4. 그렇다면 본인은 자바(특정 프로그래밍 언어)를 어느정도 사용하시나요? 에 대해 답을 해야했기 때문에 중언부언 말을 이어나갔던 것 같다. 사실 이 물음은 자바(특정 프로그래밍 언어) 부분을 .. 프로그래밍공부(Programming Study)/자바(JAVA) 2022. 10. 31. [JAVA] W3C school java tutorial 정리 1. 배경 모던 자바 인 액션으로 자바 8 이후의 문법 변화에 대해 익히던 도중 자바의 기본 문법에 대해 복습할 필요성을 느낌 2. 아이디어/방안 다시 자바 기본 문법 공부하지 않고 모던 자바 인 액션 1회독 자바의 정석 필요한 부분 발췌독 전체 1회독 W3C school Java tutorial 필요한 부분 발췌독 전체 1회독 3. 채택아이디어 및 이유 3.2. W3C school Java tutorial 전체 1회독 다른 방안에 비해서 시간이 적게 들고 deep하게 공부하기 보다 간략한 개념을 환기시키기 좋아보임 https://www.w3schools.com/java/default.asp Java Tutorial W3Schools offers free online tutorials, reference.. 프로그래밍공부(Programming Study)/자바(JAVA) 2022. 10. 20. 3. 편견과 오해 처음으로 공부한 프레임워크가 Python/Django Framework다 보니 ORM덕분에 편하게 개발하였다. 하루에 10~14시간씩 계속 공부할 정도로 웹 구현이 재미있었고, 구현하고 디버깅하느라 시간가는 줄 몰랐다. 어느덧 백엔드 개발자로 개발업계에 발을 담그려고 하다보니 Spring을 채택하고 있는 것을 깨닫고 Python/Django 뉴비인 나는 도대체 뭘하라고! 라는 핑계로 잠시 취업은 뒤로 미루고 SSAFY(삼성 청년 소프트웨어 아카데미)에 입과하였다. 스프링을 공부할수록 깨닫는 건 큰 틀에서 보면 Django나 Spring이나 비슷한 것으로 보였다. 어차피 웹 구현에 필요한 기능들을 또이또이해서 그런가?? python이 코드 수가 적고 뭔가 더 간단해보여서 java/spring에 심리적 장벽.. 끄적끄적(Memo)/끄적거림(scribble) 2022. 4. 21. 백준 1021- 회전하는 큐 JAVA 전형적으로 deque을 이용한 큐 돌리기 문제였다. 처음에는 문제를 잘못 읽어서 테스트케이스 2번이 어떻게 되나 했는데 그냥 시계방향, 반시계방향 돌리면서 해당 원소가 나올 때의 최솟값들을 합하면 된다는 것을 알았다. 1. 덱을 활용한 원형큐 느낌이 들었음 2. 시계방향, 반시계방향으로 움직이며 원소들을 일일이 확인하고 두 방향 중 최솟값을 answer에 더하면 끝 +참고: 덱은 front, tail부분에 삽입, 삭제, 조회가 가능한 자료구조이다. package boj; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import jav.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 4. 18. 백준 2565 - 전깃줄 JAVA 해당 문제를 처음 접했을 때는 점화식을 구하기 보다 구현으로 해결하려고 했었다. 그래서 아래와 같이 Comparator를 두 번이나 오버라이딩 해서 썼다. 하지만,,, 결과는 9퍼에서 틀림! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { // 전깃줄 .. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 4. 1. 백준 11054 - 가장 긴 바이토닉 부분 수열 - JAVA 바로 직전에 풀었던 백준 11053 문제의 응용편이다. 11053 풀땐 3시간이 걸렸지만 바로 응용해서 푸니 10분? 20분만에 푼 것 같다. 어쩐지 정답률이 높더라... 2022.03.31 - [알고리즘공부(AlgorithmStudy)/문제풀이(ProblemSolving)] - 백준 11053 - 가장 긴 증가하는 부분 수열 JAV 백준 11053 - 가장 긴 증가하는 부분 수열 JAV 쉬운 것 같아서 점화식 짜고 대충 구현해서 풀다가 3시간 만에 풀었던 DP문제다. 매 순간 긴장을 놓치면 안 된다는 것! 자만하면 안 된다는 것을 다시 한번 일깨워준 문제...! 시간 복잡도 계산 정 chaaany.tistory.com 1. 1부터 n까지는 오름차순인 증가하는 최장 수열 길이 찾아서 dp[n][0]에 할.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 3. 31. 백준 11053 - 가장 긴 증가하는 부분 수열 JAV 쉬운 것 같아서 점화식 짜고 대충 구현해서 풀다가 3시간 만에 풀었던 DP문제다. 매 순간 긴장을 놓치면 안 된다는 것! 자만하면 안 된다는 것을 다시 한번 일깨워준 문제...! 시간 복잡도 계산 정확하게 안 하고 점화식은 몇 분만에 구하고 시간 복잡도 터질까봐 배제했던 코드가 답이었다!.. ㅜㅜ 2차원 배열 선언하고 Comparator 재정의해서 정렬하고... 별짓을 다했다 1. 1 n번쨰 까지의 최장 길이 수열 = n번째 수 > n-1 일 경우 n번째 수를 넣은 수열 or // 10 20 10 30 20 50 // O O X O X O // 8 6 9 1 4 6 7 4 3 7 4 7 2 5 2 10 1 // 1 1 2 1 2 3 4 2 2 4 3 4 2 4 2 5 1 // 8 // O // 8 6 /.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 3. 31. 백준 2156 - 포도주 시식 JAVA 처음에 딱 보고??? 이거 계단 오르기 아닌가? 라고 생각 했지만 역시나 아니었다. 이유는 문제 풀이 과정에서! 1. 포도주 잔 선택 시 무조건 다 마셔야 함 2. 3잔 연속으로 놓여 있는 잔을 마실 순 없음 -> 연속 +1, +1은 불가 3. 1 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 3. 29. 백준 10844 - 쉬운 계단 수 JAVA 해당 문제는 실버 1이었지만 단계별로 풀이 문제 중에 실버2, 3문제랑 비교해봤을 때 상대적으로 쉬웠던 문제로 보인다. 티어는 그저 거들뿐 .. !! 아닌가? DP + Padding + 모듈러연산을 사용한 것이니 응용버전인 것으로 보이긴 한다... 잡담은 그만하고 DP + Padding(딱 맞는 크기의 배열을 선언하기 보다 적절히 빈 배열을 만들어서 활용하는 기법)+ 모듈러 연산을 통해서 문제를 풀었다. 문제 푸는데 소요시간 : 대략 50분 문제 접근/풀이 과정 1. 계단 수란 인접한 모든 자리의 차이가 1인 경우 2. n번 째 m으로 시작하는 수의 경우의 수 = n-1번째 m-1로 시작하는 수의 경우의 수 or n-1번째 m+1로 시작하는 수의 경우의 수 3. 추가적으로 고려해야할 부분 = 맨 앞의 수.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 3. 28. 백준 14247 나무자르기 - JAVA 해당 문제를 풀 때 다음과 같이 접근했다. 1. 매일 매일 산에 오를 때마다 가장 큰 것을 자르면 어떨까? -> 테케에 맞지 않는다. 2. 나무가 자라는 게 등차 수열이네 -> 그러면 공차의 오름차순 대로 나무를 잘라볼까? -> 테케 맞음 3. 그러면 오름차순 정렬할 때 Arrays.sort를 쓸까? 4. 어차피 계속 배열을 유지할 필욘 없으니 PriorityQueue를 써볼까? 라는 의식흐름에서 나온게 다음과 같은 코드이다. -> 하지만 함정이 숨어 있었다...흑흑 다름아닌 데이터 타입... 최악의 상황을 가정해 보았다. 나무 100,000개에 등차가 10,000이고 첫항이 전부 100,000 일 경우 99999*100000/2*10000 + 100000 = 49,999,500,100,000 => lo.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 3. 21. 백준 1600 말이 되고픈 원숭이 - JAVA 이 문제를 푸는데 3시간이 걸렸다. 혼자 푼 건 아니고 로직은 맞는데 메모리 초과가 나서 구선생님의 도움을 받았다. 배열로는 메모리 초과가 뜨는데 Monkey 객체로 푸니까 문제가 풀렸다. 마치 int를 long으로 선언해서 맞은 기분이랄까? 6%에서 자꾸 시간 초과, 메모리 초과, 틀렸습니다가 떠가지고 너무 당황스러웠다. 문제 풀이의 핵심은 다음과 같다. 1. 최소한의 동작으로 목적지 도달 -> BFS(너비 우선 탐색) 2. 벽이 있는 곳은 가지 못함 3. 쓸모없는 탐색, 함수 호출 제거 4. 배열이 아닌 객체 선언 및 생성을 통한 메모리 초과 해결 package boj; import java.io.BufferedReader; import java.io.IOException; import java.io.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 3. 20. 이전 1 2 다음 728x90