2023/08 8

[탐색] DFS vs BFS - 간단 정리

💡 유튜브 및 인프런을 보고 정리한 내용입니다! 문제시 해당 글은 삭제하도록 하겠습니다.  DFS vs BFS 만약 우리가 넷플릭스의 드라마를 볼 때 어떤 유형의 스타일인가? 하나를 몰아본다  ⇒ DFS(깊이 우선 탐색)여러 개를 하나씩 본다 ⇒ BFS(너비 우선 탐색) 그래프: 여러 개채들이 연결되어 있는 자료 구조 / 정점(node)과 노드(edge)로 이루어진 자료 구조탐색: 특정 개체를 찾기 위한 알고리즘 그래프  + 탐색 = 그래프(를) 탐색(하는) 알고리즘  그래프로 정보를 정리하는 이유는 탐색을 하기 위해서 이다.(문제를 풀 때, 입력 값을 이차원 배열 등의 방법으로 정리한다.) 그래서 우리는 dfs 또는 bfs 를 검색하면 아래와 같이 그래프가 그려진 이미지들을 볼 수 있다.  DFS: ..

[자바 문법] Map 인터페이스

💡 Java Collection Framework(JCF) 에 대해 작성 했지만 Map에 대해 깊게 작성해 보자! Map 인터페이스 종류 01. HashMap 02. TreeMap 값을 자동으로 오름차순 정렬 03. LinkedHashMap key의 순서가 있는 경우 Map 출력을 위해 Map 타입의 변수를 아래와 같이 준비해보자! import java.util.*; import java.io.*; public class Solution { public class main(String[] arg) { // Map 생성 Map map = new HashMap(); // Map의 value 안에 배열 넣기 Map mapArray = new HashMap(); // 입력 값 받기 BufferedReader b..

[서버 개발] 서버 to 서버 통신

💪 현재 작성하고 있는 중입니다. 일반적으로 통신이라고 하면 웹(클라이언트)에서 서버를 생각했었는데 업무를 하면서 서버와 서버 간의 통신하는 방법 몇 가지를 알게 되어 이를 정리해 보자고 한다. 서버 to 서버 서버끼리 http, https 통신을 할 수 있으며 통신 방법 코드는 여러 가지가 있다. HttpURLConnection && URLConnection 두 클래스를 코드로 어떻게 작성되어 있는지 확인해보자. HttpURLConnection 클래스 HttpURLConnection 클래스는 URLConnection 클래스를 상속(extends) 받으면서 추상화(abstract) 클래스 이다. 생성자(Constructor)에서 protected 접근 제한자를 사용하면서 직접 인스턴스 생성이 불가능하다...

회사 업무 2023.08.10

[자바 문법] String 클래스

01. Contains 내부적으로 indexOf 메서드를 사용해서 구현하고 있음. public boolean contains(CharSequence sequence) { return indexOf(sequence.toString()) > -1; } 예시) 프로그래머스 입문 - 문자열 안에 문자열 class Solution { public int solution(String str1, String str2) { int answer = 0; if (str1.contains(str2)) answer = 1; else answer =2; return answer; } } 02. indexOf / lastIndexOf class Solution { public int solution(String str1, Str..

[백준] 1차원 배열 문제집 (완료)

다시 보면 좋은 코드배열을 뒤집으면서 바꾸는 코드// 예시)// [1, 2, 3, 4, 5] => [5, 4, 3, 2, 1]for (int j=a, k=b; j   배열에서 첫 번째 값부터 뒤지면서 찾는 최대값 최소값// 상황에 따라 min/max 변수의 값을 초기화 하고// 모든 변수랑 비교하면서 min/max 변수를 업데이트함.// 최소값 구하기int min = numbers[0];for(int i = 1; i max) { max = numbers[i]; }} 문제집10807번: 개수 세기 - 브론즈 5chatGPT가 Stream으로 처리한 정답(Stream 공부를 해야겠다..)import java.io.*;import java.util.*;public class Main { ..

[탐색] 이진 탐색(Binary Search)

👉 특징 데이터가 정렬되어 있는 상테에서 원하는 값을 찾아내는 알고리즘 대 상 데이터의 중앙값과 찾고자 하는 값을 비교해 데이터의 크기를 절반씩 줄이면서 대상을 찾는다. 👉 코드 현재 데이터셋의 중앙값(median)을 선택한다. 중앙값 > 타깃 데이터(target data)일 때, 중앙 값 기준으로 왼쪽 데이터셋을 선택한다. 중앙값 < 타깃 데이터일 때, 중앙값 기준으로 오른쪽 데이터셋을 선택한다. 과정 1~3을 반복하다가 중앙값 == 타깃 데이터일 때 탐색을 종료한다. public class test { static int[] arr; public static void main(String[] args) { arr = new int[]{5, 7, 8, 15, 20, 38, 52, 58, 77}; bin..

[정렬] 병합 정렬(merge sort)

참고 영상 사이트는 여기 입니다. 👉 특징 👉 코드 전체 어떤 느낌인지는 알겠지만, 코드적으로 확 와닿지는 않는다!! public class Test { private static void mergeSort(int[] arr) { int[] tmp = new int[arr.length]; mergeSort(arr, tmp, 0, arr.length - 1); } private static void mergeSort(int[] arr, int[] tmp, int start, int mid, int end) { if (start < end) { int mid = (start + end) / 2; mergeSort(arr, tmp, start, mid); mergeSort(arr, tmp, mid + 1, m..

[브라우저] PNA CORS(formerly known as CORS-RFC1918)

💡 내용이 틀린 부분이 있을 수 있습니다. 업무를 하면서 PNA CORS를 접하게 되어 작성하게 되었습니다. 👉 PNA CORS? Chrome is deprecating access to private network endpoints from non-secure websites as part of the Private Network Access specification. The aim is to protect users from cross-site request forgery (CSRF) attacks targeting routers and other devices on private networks. 즉, 의역을 하면 크롬은 안전하지 않는 웹사이트에서 Private Network Access 사양으로 ..

회사 업무 2023.08.01