목록전체 글 (95)
in.add()
HTTP HTTP는 Connectionless 방식으로 연결을 매번 끊고 새로 생성하는 구조입니다. 이는 Network 비용 측면에서 최초 연결을 하기 위해 많은 비용을 소비하는 구조입니다. HTTP의 Keep Alive 란? HTTP/1.0+의 'Keep-Alive'. 연결을 유지하라 이미 연결되어 있는 TCP 연결을 재사용하는 기능입니다. Handshake 과정이 생략되므로 성능 향상을 기대할 수 있습니다. 즉, keep Alive time out 내에 client에서 request를 재 요청하면 socket(port)를 새로 여는 것이 아니라 이미 열려 있는 socket(port)에 전송하는 구조가 됩니다. 👉 Conenction에 소요되는 시간을 절약하게 됩니다. Keep Alive 설정 요청 헤..
문제 링크 : https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 해결 방법 bitmask를 이용한 조합으로 구현했습니다. import java.util.ArrayList; import java.util.Scanner; public class Main { static int N, min; static int[][] status; public static void main(String[] args) { Scanner sc = new Scanner(System.in)..
문제 링크 : https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 문제 해결 방법 이분 탐색으로 구현했습니다. 놓쳤던 부분 랜선의 길이는 231-1보다 작거나 같은 자연수이다. int 범위를 벗어날 수 있기 때문에 long을 써줘야 합니다. 또 초기 min 값을 0이 아닌 1로 주어야 합니다. import java.util.Scanner; public class Main { public static void main(S..
문제 링크 : https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 문제 해결 방법 다익스트라 알고리즘 이용했습니다. ㅎㅎ,, 놓쳤던 부분 1 3 4 / 1 3 6과 같이 출발지, 도착지는 같지만 비용이 다른 입력이 있을 수 있다. 버스 비용은 0보다 크거나 같고 100,000보다 작은 정수이다. 👉 비용이 0인 입력이 있을 수 있다. (문제 제대로 읽자..) 1번을 위해 더 작은 비용의 경로를 저장했고, 2번을 위..
운영체제란? 컴퓨터 HW 바로 윗단에 설치되는 SW입니다. 하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어로 정의합니다. 운영체제는 시스템의 자원(가령 CPU 시간, 메모리 공간, 파일 저장 공간, 입출력 장치 등)과 동작을 관리하는 소프트웨어입니다. 운영체제의 역할 응용 프로그램이 요청하는 시스템 자원을 효율적으로 분배하고 관리합니다. 응용 프로그램? 운영체제를 제외한 나머지 소프트웨어로 사용자가 평소에 사용하는 프로그램을 의미합니다. 시스템 자원? 컴퓨터 HW와 같은 개념으로 CPU, 메모리, 입출력 장치, 하드 디스크 등 시스템에서 사용할 수 있는 자원을 의미합니다. OS는 자원들을 효율적으로 관리해 가장 좋은 성능을 내는 역..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 문제 해결 방법 인접 배열 요소 탐색을 위해 델타를 이용했습니다. {상, 우..
Unit test? '단위 테스트' 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트입니다. 여기서 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메서드로 이해할 수 있습니다. 예를 들어 웹 애플리케이션에서 로그인 메서드에 대한 독립적인 테스트가 1개의 단위 테스트가 될 수 있습니다. 즉, 단위 테스트는 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것으로, "어떤 기능이 실행되면 어떤 결과가 나온다" 정도로 테스트를 진행합니다. TDD? '테스트 주도 개발' (Test Driven Development) TDD는 매우 짧은 개발 사이클의 반복에 의존하는 소프트웨어 개발 프로세스입니다. 우선 개발자는 요구되는 새로운..