자바 옵셔널(Optional)클래스의 올바른 사용방법
Back-end/- Java2024. 5. 9. 18:24자바 옵셔널(Optional)클래스의 올바른 사용방법

🌱 옵셔널(Optional)이란? + 왜 사용해야 하는지? 자바 8에 추가된 기능이며, 결괏값이 없음(null)을 더 안전하고 명확히 전달하기 위해 등장했다.자바 8 이전까진 null로 표현했지만 알다시피 null은 시스템에 오류를 발생시킬 가능성이 매우 높다즉 시스템을 NPE(NullPointerException)로부터 안전하게 보호하기 위한 기능을 제공하는 래퍼(Wrapper) 클래스이다. Null safety를 고려하는 개발을 통해 에러를 방지하고 시스템의 안정성을 보장하기 위해 옵셔널을 사용한다.  🚨  사용 시 주의사항그렇다면 모든 변수, 반환값에 옵셔널로 래핑 해서 관리하면 되는 것 아닌가? 앞서 이야기했던 것처럼 옵셔널은 래퍼(Wrapper) 클래스이다. 반환값 등을 감싸고 (Wrappi..

[BOJ] 백준 13334 철로 (JAVA)
Algorithm/- Baekjoon2024. 5. 9. 02:35[BOJ] 백준 13334 철로 (JAVA)

📑 문제🌱 아이디어스위핑 유형의 문제, 일단 무엇을 기준으로 정렬할지 생각해 보자 위 문제에 핵심은 좌표의 범위 L이 주어질 때  end - start 이 만족해야 한다, 즉 구간마다 L범위에 해당하는선분의 개수를 세야 한다. 좌표 구간마다 선분이 해당하는지 판단하고, 범위체크까지 한다면 자칫 O(N^2) 시간복잡도를 가지게 구현할 수 있다.하지만 N의 범위가 100,000까지 이며 O(N) 이하로 구현해야 한다. 먼저 데이터를 정렬하는 과정이 필요하다. y축을 기준으로 정렬하고 한쪽 방향으로 쭉 스캔하면서 계산을 하면 된다즉 한쪽 -> 반대쪽으로 쭉 스캔을 하는 스위핑 방식으로 구현하면 O(N)의 시간복잡도로 빠르게 구현 가능하다.   정렬 후 가장 아래 (10, 20)부터 last에 x를 넣고 계..

[BOJ] 백준 1377 버블 소트 (JAVA)
Algorithm/- Baekjoon2024. 5. 3. 09:38[BOJ] 백준 1377 버블 소트 (JAVA)

📑 문제🌱 아이디어버블소트의 특징을 활용하자! 위 문제는 C++ 버블 소트 코드를 제공한다. 전형적인 버블 소트 알고리즘이며 O(N^2)의 시간복잡도를 가진다입력으로 1  즉 , 위 문제는 버블 소트를 구현하는 문제가 아닌 버블 소트의 특징을 이용하는 문제이다.  결국 정렬하는 문제이다 버블 소트의 정렬 특징을 생각해 보자 오른쪽 -> 왼쪽으로 숫자가 이동할 때, 한 턴에 연속적으로 다수의 칸을 이동한다.왼쪽 으로 숫자가 이동할 때, 한 턴에 단 한 번만 이동한다. 위 특징을 봤을 때, 결국 버블 소트의 실행 횟수는 왼쪽  그렇다면 어떻게 구현할까? 해당 숫자와  입력된 위치(인덱스)를 저장하고, 한 번에 정렬 후 현재 숫자 위치(인덱스) - 원래 위치(인덱스)의 차를 구한다그중 가장 큰 차가 바로 ..

SpringBoot 빌드(Build) 및 실행하기 (Mac, Gradle)
Back-end/- Spring2024. 5. 1. 21:06SpringBoot 빌드(Build) 및 실행하기 (Mac, Gradle)

🏠 빌드(Build)를 하는 이유결과물, 소스 코드를 안정적으로 실행할 수 있게 독립적인 형태로 변환하는 과정입니다.배포(Deploy)를 하기 위해선. java 파일을 바이너리 코드인. class로 변환을 해야 합니다즉, 독립적인 형태 + JVM, WAS로 변환시켜 패키징 하는 과정, 또는 결과물입니다로컬(개발, 디버깅 등) -> 빌드 -> 배포 순으로 진행됩니다.  🌱 빌드(Build) 과정 for Mac, Gradle 1. 터미널에서 프로젝트 폴더로 이동하기cd 프로젝트파일위 파일들이 있는 디렉터리로 이동해 주면 된다 2. 빌드 파일 만들기./gradlew build빌드 성공 시 Build 파일이 생깁니다. 이제 실행을 위해 cd 명령어를 통해build/libs 파일로 이동합니다. 3. jar 실..

[BOJ] 백준 31782 저체온증 (JAVA)
Algorithm/- Baekjoon2024. 4. 30. 18:34[BOJ] 백준 31782 저체온증 (JAVA)

📑 문제🌱 아이디어낮, 밤 관련 BFS를 각각 구현하고, "영구적인 저체온증 환자"가 생기는 조건을 찾아보자. 위 문제의 키포인트는 볼드체로 잘 강조되어 있다. 낮, 밤을 나눠서 생각해 보자 - 낮"체온 회복 과정은 낮 사이 충분히 많이 반복될 수 있다."이 뜻은 다른 사람이 체온이 회복이 된다면, 그 주변 사람도 연쇄적으로 체온 회복이 가능하다는 뜻이다즉, 낮 BFS를 통해 단 한 번으로 가능한 모든 사람을 회복시켜야 한다. - 밤K명만큼 밤에는 저체온증 환자가 발생한다 단 "최악의 경우"로 발생한다.이 문제에서 최악의 경우란 낮이 되어도 회복이 불가능한 저체온증 환자이다. 그렇다면 어떤 조건에서 정상체온 환자가영구적인 저체온증으로 변경되는지 캐치해야 한다. 가장 먼저, 낮에서 체온을 회복할 때 정..

반응형
image