본문 바로가기

🧑🏻‍💻 Dev

(60)
[백준] 1931번 회의실 배정 - Java 백준 1931번 회의실 배정 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 📖 문제 그리디 알고리즘의 대표적인 예시 문제라고 해도 될 문제입니다. 그래서 풀이에 대해서 조금 정리해보려고 합니다. 🔎 접근 방법 회의 일정에는 시작 시간과 종료 시간이 존재합니다. 회의 일정은 겹치면 안되고, 최대한 많은 회의를 진행해야 합니다. 위 조건을 생각해봤을 때, 이전 회의 일정의 종료 시간과 겹치지 않아야 하고 이후 일정의 시작 시간과 겹치지 않아야 합니다. 즉, 회의 일정을 종료 시간 기준으로 오름차순 정렬하여 종료 시간이 빠른 일정부터 해결해나가면 정답에 접근할 수 있습니다. 1. 회의 일정을 저장할 수 있는 클래스 선언 후 Co..
[백준] 1260번 DFS와 BFS 자바 DFS 문제 따로 BFS 문제 따로 풀어본 적은 있는데 한 문제에서 동일한 그래프로 DFS와 BFS를 모두 사용해야 하는 문제였습니다. 🔗 문제 링크 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 🔍 문제 분석 첫 째줄에 정점의 개수(N, 노드의 개수)와 간선의 개수(M) 그리고 탐색 시작 정점(V)이 공백으로 주어집니다. 그다음 간선의 개수(M)만큼의 입력이 주어지고, 각 입력 줄에는 연결되어 있는 No..
[오류해결] IntelliJ 커스텀 properties 자동완성 안되는 오류 크리티컬 한 오류는 아니지만 IntelliJ에서 작동이 안 되길래 찾아본 오류입니다. 🤔 문제발생 @ConfigurationProperties(prefix = "spring.thymeleaf")를 사용하여 사용자 정의 프로퍼티(spring.thymeleaf3)를 만드는 코드를 작성했습니다. 물론 main 메서드가 있는 클래스에서 해당 프로퍼티를 스캔할 수 있도록 @ConfigurationPropertiesScan도 붙여줬습니다. /* 앞 코드 생략 */ @Getter @RequiredArgsConstructor @ConstructorBinding @ConfigurationProperties(prefix = "spring.thymeleaf3") public static class Thymeleaf3Prop..
[Java] 불변 객체(Immutable Object)와 Record 평소에 늘 JDK11 버전을 사용해서 모르고 있었는데, 최근 JDK16으로 버전을 바꿔보면서 새롭게 사용해 본 기능이 있어서 기록해 볼까 합니다. 추가로 평소에 궁금했었던 불변 객체에 대해서도 조금 찾아서 기록해보려고 합니다. 📖 불변 객체(Immutable Object)란? 생성 후 그 상태를 바꿀 수 없는 객체를 의미합니다. 불변객체는 읽을 수만 있는 Read-Only 메서드만을 제공합니다. Java의 대표적인 불변객체로는 String이 있습니다. # String Class Description 그럼 String은 생성된 후 값을 변경할 수 없다는건가? 그럼 아래 코드는 무엇인가? 값을 변경하는 것이 아닌가? public class Main { public static void main(String[..
[IntelliJ] 인텔리제이 주석 밑줄 제거하기 IntelliJ 사용 중 아래와 같이 계속 주석에 밑줄이 생겼다. 문법적인 오류로 발생한건지... 영어랑 한글이랑 저렇게 붙여서 쓰면 계속 밑줄이 생겨서 거슬린다. 제거해 버리자. 1. Setting으로 들어가기 맥북은 Command + , 을 누르면 들어가진다. 윈도우는 찾아봐야 할 거 같지만, 단축키 없이도 들어갈 수 있다. 2. "Inspection" 검색 3. "Proofreading" 검색 이렇게 Proofreading을 검색하고 들어가서 "Typo"를 누르면 오른쪽에 체크박스가 나옵니다. 그중에서 Process comments의 체크박스를 풀어주면 됩니다. 4. 사라졌는지 확인 밑줄이 사라진 것을 볼 수 있다. 계속 거슬렸는데 이렇게 설정해서 없애니깐 속이 시원해졌습니다. 😤 근데 인텔리제이의..
[오류해결] No serializer found for class (InvalidDefinitionException) 🤔 문제 발생 Request 요청을 위한 DTO로 사용하기 위한 클래스를 생성한 후 해당 객체를 ObjectMapper의 writeValueAsString() 메서드에 넣어 serialize 해서 json 데이터로 mvc에 content에 담아 POST 요청을 하는 테스트를 진행했습니다. # PlaceRequest.java 코드 @AllArgsConstructor public class PlaceRequest { private PlaceType placeType; private String placeName; private String address; private String phoneNumber; private Integer capacity; private String memo; public stat..
[IntelliJ] 여러줄 한번에 수정하기 (Mac) 알면 편리한 기능인 것 같아서 짧게 기록해두려 합니다. 아래 코드가 있습니다. "$.data~~"에서 data뒤에 배열의 인덱스를 나타내는 [0]을 추가하고 싶습니다. 단축키를 찾아보니 "Shift + 아래키"라고 쓰여있어서 했는데, 아래와 같이 모든 줄이 선택됩니다. 이때 "Command + Shift + 8"을 입력하면 인텔리제이 오른쪽 밑 부분에 Column이라는 글자가 나타나면서 모드가 변경됩니다. # 단축키 누르기 전 # 단축키를 누른 후 Column이라는 글자가 생긴 것을 볼 수 있습니다. 이때 다시 "Shift + 아래키"를 눌러 봅시다. 오호 성공입니다. 만약 커서를 다시 원상태로 복구하고 싶다면 Esc를 눌러주시면 됩니다. 이제 동시에 코드를 추가해 보겠습니다. 모든 수정이 끝나면 다시 ..
[Spring] application.yml 설정값 가져오기 application.properties로 사용하는 분들도 계시지만 방법은 동일하기 때문에 저는 application.yml 기준으로 혼자 복습하며 기록해보려고 합니다. 만약 A, B, C라는 클래스가 존재할 때, 이 3개의 클래스 내부에서 companyName이라는 값을 모두 같은 "Fast Company"라는 값을 사용한다고 가정을 해봅시다. 이때 만약 회사 이름이 변경되어서 "Slow Company"로 바뀌었다고 생각해 봅시다. 그럼 우리는 A, B, C 클래스로 모두 이동해서 "Fast Company"라는 값을 "Slow Company"로 모두 변경해줘야 합니다. 물론 클래스가 3개 밖에 없어서 간단하게 할 수 있지만, 만약 클래스가 1000개가 넘는다고 생각하면 어떨까요? 무려 1000번을 변경..