전체 글
-
[백준] Java - 미로 탐색메모/알고리즘 2022. 4. 27. 23:01
2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 1 9 10 11 12 2 8 12 3 7 13 14 4 5 6 14 15 정말 쉬운 BFS 문제이자 FloodFill 알고리즘을 사용하는 문제이다. 파이썬으로 코테를 준비하다가 자바를 새로 준비해보려니 자바 자체의 문법을 이용하는게 좀 오래 걸렸다. 1, 1의 좌표에서 n, m 좌표까지의 최단 거리를 출력하면 된다. 기본적으로 이동할 수 있는 위치를 표시하는 배열과 방문 여부를 확인하는 배열을 입력 값의 크기만큼 할당하고 시작한다. 위의 표 처럼 다음 이동할 위치에는 현재 위치의 값에 1을 ..
-
[JAVA] 입출력개발/Java 2022. 4. 25. 20:37
우리가 자바를 통해서 일반적으로 입출력을 처리하는 방법에 대해서 알아본다. 파이썬의 경우 sys.stdin.readline(), input(), map(), split() 등을 이용하는 것처럼 여러가지의 경우를 정리할 것이다. 추가 내용이 있을 경우 업데이트 예정 일반적인 입출력 import java.io.*; import java.util.*; public class Main { public static void main(String[] args){ /* 입력 */ Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); /* 출력 */ System.out.println(n); } } Scanner와 표준 출력을 활용한 ..
-
[Spring Boot] URL 이미지 반환하기개발/Java 2022. 4. 25. 17:14
스프링부트를 활용해서 API 서버를 만들면서 이미지가 담긴 URL을 반환해주는 기능이 필요했다. 클라이언트가 서버의 URL로 접근해서 이미지를 요청하면 외부 API의 정적 이미지를 담은 URL을 내 쪽으로 끌고와서 해당 URL의 이미지를 내 서버의 URL로 접근할 수 있도록 해야했다. 외부 API에 직접 접근하면서 생기는 두 가지 문제점을 해결하고 싶었다. API키가 노출되는 점 URL 길이가 길어지는 점 위 두 개의 문제점을 해결하기 위해서 다음과 같은 방법을 생각했다. 외부 API URL에 접근해서 이미지만 객체 또는 바이트 배열로 받아오기 해당 이미지 객체를 바이트 배열로 반환하기 우선 아래와 같은 클래스와 함수를 만들었다. 파라미터로 전달되는 값들을 통해 URL을 구성하고 이를 통해서 URL 객체..
-
컴퓨터 네트워크 (1)Computer Science/Network 2022. 4. 20. 23:38
PROTOCOL? 네트워크 상에서 데이터, 메시지를 송, 수신하는 형태, 순서, 요청과 응답 방법 등을 일정하게 규정하는 규칙이다. 프로토콜마다 다른 기능과 역할을 수행하며 여러 프로토콜이 여러 계층에서 상호작용하여 사용자에게 서비스를 제공한다. PACKET SWITCHING 동시 접속을 지원하고 장애가 발생하거나 품질이 저하도 분산되어 공유한다. 패킷 별로 라우팅을 통해 경로를 지정해야 한다. 가용할 수 있는 네트워크 자원을 보장하지 않고 최선의 경우만을 지원한다. Admission control을 통해 대기 큐를 만들어 Circuit Switching의 전용 회선을 모방할 수 있다. Packet Switching에서 35명의 사용자 중 10명 이상이 동시에 해당 네트워크를 사용하는 확률은? CIRCU..
-
[백준] Python - 알파벳메모/알고리즘 2022. 4. 13. 10:41
1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 백준의 그래프 탐색 문제 알파벳이다. 이 문제는 DFS와 BFS 두 가지 방법으로 접근했다. DFS 같은 경우는 재귀를 사용하여 visited 집합에 방문 여부를 저장하는 방식을 사용했다. DFS와 BFS가 모두 인접 행렬/인접 리스트 각각에서 시간 복잡도가 같은 걸로 알고 있는데 DFS 방식은 PyPy3로 해결할 수 있었고 Python3로는 시간초과가 발생했다. BFS를 사용한 방식은 조금의 변형이 있었다. 일반적으로 우리는 FloodFill과 같은 알..