전체 글126 오버로딩과 오버라이딩 오버로딩(OverLoading) 같은 이름의 함수(메서드)를 여러 개 생성하는 것이다 기존에 없는 새로운 메서드를 정의하는 것이다 리턴(반환) 타입이 달라도 상관이 없다 메서드의 이름이 같을 때 메서드의 파라미터의 개수나 타입이 달라야 한다 하단 코드를 실행하면 오른쪽과 같은 결과가 나옴을 확인할 수 있다. l은 long형의 리터럴 표기를 위해서 사용했다. import java.io.IOException; import java.util.List; public class Main { public static void main(String[] args) throws IOException { System.out.println(sum(List.of(1,2))); System.out.println(sum(1, 2.. JAVA 2023. 2. 22. 위상정렬 Topology Sort, 백준 1766 문제집(Java) 위상 정렬(Topology Sort) 정렬 알고리즘의 일종으로, 순서가 있는 작업을 차례대로 수행해야 하는 경우 사용할 수 있는 알고리즘이다. 방향 그래프로의 모든 그래프를 방향을 거스르지 않도록 순서대로 나열하는 것이다. 2번을 풀기 전에 1번 3번을 풀기 전에 2번 ,4번 4번을 풀기전에 5번을 푸는 것이 좋다고 하는 상황이 있다면 우리는 다음과 같은 방법들로 문제를 푸는 것이 좋다면 1->2->5->4->3 1->5->2->4->3 과 같이 다양한 경우가 만들어 질수 있다(이 외에도 가능하다) 이렇게 정렬하는것이 위상정렬이다. 추가로 위에 상황에서 쉬운 문제를 먼저 푸는 것을 우선으로 한다고 하면 1->2->5->4->3 같은 순서로 답을 낼 수 있을것이다. [(숫자: 난이도, 1번이 제일 쉬운문제.. 알고리즘 2023. 2. 22. [백준 Java] 1238 파티 (다익스트라, 데이크스트라) [문제 링크] boj 1238 자바 dijkstra graph https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net [생각 흐름] 처음에는 다익스트라 방법으로 문제를 해결하였다. n-1번 다익스트라를 동작시키고, 파티 위치부터 돌아오는 것을 더해 가장 큰 것을 구하는 방법으로 계산하면 된다. 문제에서는 시간상으로 통과하지만 더 좋은 풀이가 있을것 같아 다른 풀이도 확인해본 결과 A -> B로 가는 걸로 돌아가는 걸 계산.. 알고리즘 2023. 2. 21. [백준 Java] 11054 가장 긴 바이토닉 부분수열 [문제 링크] boj 11054 가장 긴 바이 토닉 부분 수열 자바 풀이 https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net [생각 흐름] 전에 풀었던 11053 https://www.acmicpc.net/problem/11053 (가장 긴 증가하는 부분 수열) 문제와 유사한 풀이 방법으로 해결했다. 앞에서부터 arr [i]를 포함한다는 전제로 arr [i]보다 작고 arr [j]까지의 최대 증가 부분 수열(sum [j])가 sum [i] 보다 크다면 sum[i] =.. 알고리즘 2023. 2. 21. @ModelAttribute 와 @RequestBody @RequestBody ( Http 바디 정보를 편리하게 조회: 주로 API JSON에서 사용한다. ) 클라이언트가 보내는 HTTP의 바디 메세지(json)을 Java 객체로 변환해준다. (이때 HttpMessageConverter을 이용하여 타입에 맞게 변화한다.) 각각의 필드 단위로 적용하는 것이 아니라 전체 객체 단위로 적용된다. 헤더 정보가 필요하면 HttpEntity를 사용하거나, @RequestHeader을 사용한다. @PostMapping("/api/user-add") public long makeUser(@RequestBody UserMakeDto userMakeDto) { Member member = Member.makeUser(userMakeDto.getLoginId(), userMak.. Spring,SpringBoot 2023. 2. 15. SpringBean, IOC, DI 스프링은 자바기반 프레임 워크로 개발을 편리하게 해 주기 위해서 사용한다. 이때 다형성을 유지하기 위해서는 OCP, DIP가 위배된다. 이를 해결하기 위해서 스프링에서는 IOC를 지원한다. Container : 빈을 관리하는 것으로, 인스턴스의 생성 주기, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 한다. Spring Conatiner : Spring Framework의 핵심부에 위치하며, 종속 객체 주입을 이용하여 Application을 구성하는 Component들을 관리한다. 이때 Spring Container에서 생성되는 객체를 Bean이라고 한다. IOC( Inversion of Control) 제어의 역전: 개발자가 직접 인스턴스를 생성하고 의존관계 주입을 하는 것이 아니라 IOC Cont.. Spring,SpringBoot 2023. 2. 11. Array 배열 복사의 4가지 방법 1. 새로운 배열 생성 후 포문으로 도는 방법 for : [1, 2, 3, 4, 5] int[] arr = {1, 2, 3, 4, 5}; //1. for 문을 이용 int[] cpyArrFor = new int[arr.length]; for (int i = 0; i < arr.length; i++) { cpyArrFor[i] = arr[i]; } System.out.println(" for : " + Arrays.toString(cpyArrFor)); System.out.println(); 2. arr.clone()를 이용하는 방법 clone : [1, 2, 3, 4, 5] //2. clone을 이용 int[] cpyArrClone = arr.clone(); System.out.println(" clon.. JAVA 2023. 2. 10. 프로세스와 스레드 스터디 중에 사용했던 발표 자료입니다 💡 아이스 브레이킹 → 단골 질문으로 면접을 준비했는지 확인하는 질문! Q. 면접에서 프로세스와 스레드의 차이는 왜 계속 물어보는 걸까? → 기본적인 동작 방식, 컴퓨터의 동작방식을 알고 있는지 확인하기 위해 물어보는 질문! 간단하게 프로세스와 스레드란!? 프로세스 : 운영체제에 의해 실행되는 프로그램의 인스턴스입니다. 스레드 : 프로세스 내에서 실행되는 독립적인 실행 흐름입니다. 간단하게 그림을 먼저 보다면 스레드가 하나인 싱글 스레드 프로세스와 멀티 스레드를 가진 프로세스의 차이는 아래 사진과 같습니다. 각 프로세스는 코드, 데이터, 파일을 가지고 있고 스레드는 독립되어 레지스터 세트, 프로그램 카운터 (PC), 스택 영역을 가지고 있음을 확인할 수 있다. 간단하.. CS 2023. 2. 9. DataBase ⭐️ 데이터 베이스란 무엇인가 - 특정 조직의 여러 사용자가 '공유'하여 사용할 수 있도록 '통합'해서 '저장'한 '운영'데이터의 집합이다. - 일정한 규칙, 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 공유데이터 : 특정 조직의 여러사용자가 소유하고 이용할 수 있어야 한다. 통합데이터 : 데이터베이스는 중복을 허용하지 않는다. 따라서 중복을 최소화하고 통제가 가능한 중복만 허용한 데이터이다. 저장데이터 :컴퓨터가 접근할 수 있는 매체에 데이터베이스를 저장해야한다. 운영데이터 : 조직을 운영하고 조직의 주요 기능을 수행하기 위해 꼭 필요하고 지속적으로 유지해야 한다. ⭐️ 데이터 베이스의 특징 실시간 접근성 : 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 한다. 계속 변화 : 삽입, 삭제,.. CS 2023. 1. 15. IP와 TCP/UDP OSi 계층 프로토콜 응용/표현/세션 계층 (5,6,7 계층) FTP, Telnet, SSH, DNS, SNMP, SMTP 전송계층 (4계층) TCP, UDP 네트워크 계층 (3 계층) IP , (ICMP, IGMP) (ARP, RARP) 계층 3계층 4계층 프로토콜 IP TCP UDP 신뢰성 여부 비연결성(서비스 불능상태여도 정송), 비신뢰성(패킷의 소실, 순서 보장 하지 않는다) 연결 지향형 프로토콜 (신뢰성 보장) 비연결 지향형 프로토콜 (신뢰성 미보장) TCP UDP 특징 장점: 서버와 클라이언트의 신뢰성 구축시에 3-wqy handshake (마치 물리적으로 연결되어있는것처럼 전송) 안전성(순서, 데이터) 보장 -> 신뢰성이 높다 단점 : 속도가 오래걸려서 부하가 심함 체크섬을 포함 네트워크의 .. CS 2022. 12. 8. 스프링부트 3.0 세팅 (인텔리제이, 맥) https://start.spring.io/ 원하는 dependencies를 추가하고 generate 한다. generate한후 인텔리제이에서 open 한다. spring boot 3.0은 자바 17 이상을 선택해야 한다. Java 17 설치 https://www.oracle.com/java/technologies/downloads/#java17 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 자바 17이 기본 설정이 아닐 때 그냥 빌드하면 에러가 발생한다. 인.. Spring,SpringBoot 2022. 12. 8. [백준] 2170 선 긋기 : 스위핑(Sweeping) 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y(-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net 왼쪽 부터 선형 순회 하면 한번의 탐색으로 값을 낸다. [JAVA 코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class Main { priva.. 알고리즘 2022. 11. 25. 이전 1 ··· 5 6 7 8 9 10 11 다음