전체 글
-
Hash란?CS/자료구조 2022. 6. 13. 22:04
배열 0 1 2 3 … 9270 … 9999 Koguri@koguri.com 배열은 원소 하나를 저장하거나 검색할 때 자료의 개수와 비례하는 시간이 걸리게 됩니다. koguri@koguri.com이 맞는지 확인할때 하나하나 비교해야하기 때문에 O(N)의 시간이 걸리게됩니다. 배열보다 조금 더 빨리 자료를 저장, 검색 할 방법은 없을까? 란 고민 끝에 나온 자료구조가 트리입니다. 트리 트리는 원소 하나를 저장하거나 검색하는 데 평균 O(logN)의 시간이 걸립니다. 레드 블랙 트리처럼 균형 잡힌 트리는 최악의 경우에도 O(logN)의 시간이 걸리게 됩니다. 하지만 트리도 자료의 크기가 커지면 저장 및 검색에 오랜 시간이 걸리게 됩니다. 저장된 자료의 양에 상관없이 원소 하나를 저장하고 검색하는 것을 상수 ..
-
HTTP vs HTTPSCS/컴퓨터네트워크 2022. 6. 13. 21:05
HTTP란? - Hypertext Transfer Protocol의 줄임말로 서로 다른 시스템들 사이에서 통신을 주고받게 하는 가장 기본적인 프로토콜이다. - 서버에서 브라우저로 데이터를 전송하는 용도로 가장 많이 사용한다. - HTTP는 80번 포트를 사용한다. - HTTP는 서버에서 브라우저로 전송되는 정보가 암호화되지 않는다는 문제점이 존재하여 데이터가 쉽게 도난당할 수 있다. HTTP의 구조 HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers 등으로 구성된다. 정보가 암호화되지 않는다는 문제점이 존재하여 이 문제를 해결하기 위해 HTTPS가 등장하게 되었다...
-
[백준]13265: 색칠하기(java)Algorithm/백준 2022. 6. 5. 21:35
https://www.acmicpc.net/problem/13265 13265번: 색칠하기 각 테스트 케이스에 대해서 possible 이나 impossible 을 출력한다. 2 가지 색상으로 색칠이 가능하면 possible. 불가능하면 impossible 이다. www.acmicpc.net 문제 어린 토니킴은 색칠공부를 좋아한다. 토니킴은 먼저 여러 동그라미와 동그라미 두 개를 연결하는 직선들 만으로 그림을 그리고 (모든 동그라미들 사이에 직선이 있을 필요는 없다), 연결된 두 동그라미는 서로 색이 다르게 되도록 색을 칠하고자 한다. 이 그림을 색칠하는데 필요한 최소의 색의 개수를 구하는 문제는 어렵기 때문에 토니킴은 2 가지 색상으로 색칠이 가능한지의 여부만을 알고 싶어한다. 동그라미들의 번호와 동그라..
-
[백준]19542: 전단지 돌리기(java)Algorithm/백준 2022. 6. 4. 21:34
https://www.acmicpc.net/problem/19542 19542번: 전단지 돌리기 현민이는 트리 모양의 길 위에서 오토바이를 타고 전단지를 돌리려고 한다. 현민이의 목표는 케니소프트에서 출발하여 모든 노드에 전단지를 돌리고, 다시 케니소프트로 돌아오는 것이다. 현민 www.acmicpc.net 문제 현민이는 트리 모양의 길 위에서 오토바이를 타고 전단지를 돌리려고 한다. 현민이의 목표는 케니소프트에서 출발하여 모든 노드에 전단지를 돌리고, 다시 케니소프트로 돌아오는 것이다. 현민이는 힘이 좋기 때문에 현재 노드에서 거리가 D$D$ 이하인 모든 노드에 전단지를 돌릴 수 있다. 날씨가 매우 덥기 때문에, 현민이는 최소한만 이동해서 목표를 달성하고 싶다! 현민이를 위해 현민이가 이동해야 하는 총..
-
[백준]21611: 마법사 상어와 블리자드(java)Algorithm 2022. 6. 3. 20:37
https://www.acmicpc.net/problem/21611 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net 문제 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, (r, c)는 격자의 r행 c열을 의미한다. 격자의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N, N)이며 마법사 상어는 ((N+1)/2, (N+1)/2)에 있다..
-
[백준]16929: Two Dots(java)Algorithm 2022. 6. 2. 21:38
https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문 www.acmicpc.net 문제 Two Dots는 Playdots, Inc.에서 만든 게임이다. 게임의 기초 단계는 크기가 N×M인 게임판 위에서 진행된다. 각각의 칸은 색이 칠해진 공이 하나씩 있다. 이 게임의 핵심은 같은 색으로 이루어진 사이클을 찾는 것이다. 다음은 위의 게임판에서 만들 수 있는 사이클의 예시이다. 점 k개 d1, d2, ..., dk로 이루어진 사이클의 정의는 아래와 같다. 모든 k개의 점은..
-
[백준]1477: 휴게소 세우기(java)Algorithm/백준 2022. 6. 1. 18:02
https://www.acmicpc.net/problem/1477 1477번: 휴게소 세우기 첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다. 둘째 줄에 현재 휴게소의 위치가 공백을 사이에 두고 주어진다. www.acmicpc.net 문제 다솜이는 유료 고속도로를 가지고 있다. 다솜이는 현재 고속도로에 휴게소를 N개 가지고 있는데, 휴게소의 위치는 고속도로의 시작으로부터 얼만큼 떨어져 있는지로 주어진다. 다솜이는 지금 휴게소를 M개 더 세우려고 한다. 다솜이는 이미 휴게소가 있는 곳에 휴게소를 또 세울 수 없고, 고속도로의 끝에도 휴게소를 세울 수 없다. 휴게소는 정수 위치에만 세울 수 있다. 다솜이는 이 고속도로를 이용할 때, 모든 휴게소를 방문한..
-
CORSCS 2022. 5. 31. 18:43
CORS(Cross Origin Resource Sharing) 웹 프론트 엔드와 api 서버를 따로 구성하는 경우, 프론트 엔드에서 다른 origin의 api 서버로 요청을 보내면 문제가 발생한다. 이 문제를 CORS라고 한다. 쉽게 말해서 CORS정책은 우리가 가져오는 리소스가 안전한지 검사하는 관문이다. 여기서 말하는 Origin 이란, 아래의 세 가지 요소를 조합한 것을 말한다. URL의 Protocol, Host, Port를 통해 같은 출처인지 판단할 수 있다. 배경 SOP 정책 : 같은 출처에서만 리소스를 공유할 수 있다. 예전에는 브라우저에서 요청을 보내면, 서버는 해당하는 로직을 수행한 뒤 HTML 페이지를 렌더링 한 뒤 브라우저에 반환해주는 방식이 일반적이었다. 즉, 하나의 서버(동일한 ..