본문 바로가기

분류 전체보기

(136)
[백준]2502 떡 먹는 호랑이(Python) https://www.acmicpc.net/problem/2502 2502번: 떡 먹는 호랑이 첫줄에 첫 날에 준 떡의 개수 A를 출력하고 그 다음 둘째 줄에는 둘째 날에 준 떡의 개수 B를 출력한다. 이 문제에서 주어진 D, K에 대해서는 항상 정수 A, B (1≤ A ≤ B)가 존재한다. www.acmicpc.net 문제 접근 d[n] = d[n-1] + d[n-2] n, d[n]이 주어질 때, 구해야 하는 값은 d[0]와 d[1] 첫번째 날 A개, 두번째 날 B개라면, 3번째 날: A + B 4번째 날: B + (A + B) = A + 2B 5번째 날: (A + B) + (A + 2B) = 2A + 3B 6번째 날: (A + 2B) + (2A + 3B) = 3A + 5B 계수의 변화를 살펴보면 A의..
[프로그래머스]Lv.2 카펫(Python) https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 카펫 관계식 세우기부터 시작(예전에 포기한 문제라 겁..) (1) a >= b (2) 2a + 2b - 4 = brown (3) (a-2) * (b-2) = yellow total = brown + yellow for 반복문을 사용해서 세로가 가능한 길이가 (1 ~ total) a*b == total => a = total/b a >= b는 문제에 명시되어 있지만 b가 total의 약수..
[프로그래머스]Lv.2 소수 찾기(Python) https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 우선 입력한 숫자로 이루어진 문자열 예를 들어 "1234"를 하나씩 분리해서 새로운 리스트를 만들어 ['1', '2', '3', ' 4']를 만들어야겠다고 생각했다. 그리고 이들을 반복문으로 돌면서 [1, 2, 3, 4, 12.. , 1234] 를 만들어 또 새로운 리스트로 만들면 되지 않을까 생각을 했다. 하지만 12와 21은 다르므로 순열로 생각하면 되지 않을까? 이전에 풀었을 때는..
운영체제란(2) 3. 네트워킹 컴퓨터는 Local Area Network(LAN)이라는 단위로 연결된다. 네트워크 상의 컴퓨터끼리 통신하기 위해서는 프로토콜이라는 정해진 규칙이 필요한데 TCP/IP나 HTTP와 같은 프로토콜의 지원도 OS의 역할이다. * LAN: 근거리 통신망, 가까운 지역을 하나로 묶는 네트워크 * WAN:광역 통신망, 먼거리의 지역을 하나로 묶는 네트워크 프로토콜 TCP/IP 프로토콜: TCP는 데이터를 일정한 크기로 분할, IP는 TCP가 분할한 데이터에 송신처를 붙여서 네트워크로 보낸다. OS가 지원 HTTP 프로토콜: 웹브라우저로부터의 요청에 따라 HTML 파일 또는 그림을 보내고 받는다. 애플리케이션 레벨에서 지원 OSI참조모델 트랜스포트층, 네트워크층, 데이터링크층: OS가 지원 애플리케이..
운영체제란(1) 운영체제란? 사용자와 하드웨어 사이의 인터페이스를 제공해 효율적으로 응용 프로그램이 동작하도록 지원 컴퓨터 시스템 자원을 효율적으로 관리하여 응용 프로그램이 원활하게 동작 운영체제의 역할 1. 프로세스 관리 프로세스(Process)란? 프로그램이 메모리에 적재된 상태, 프로그램의 인스턴스 "운영체제에서의 하나의 작업단위" 메인 메모리에 할당되어 현재 실행 중인 상태인 프로그램 스케줄링의 대상이 되는 작업(task) Code: 실행할 프로그램의 코드나 명령어들이 기계어 형태로 저장된 영역, CPU는 이 영역의 명령어들 하나씩 처리 Data: 코드에서 선언한 전역 변수와 정적 변수가 저장되는 영역, 프로그램이 실행되면서 할당되고 종료되면 소멸 Stack: 함수 안에서 선언된 지역변수, 매개변수, 리턴값등이 ..
동기/비동기 & 블로킹/논블로킹 동기(Synchronous) & 비동기(Asynchronous) 1. 동기 방식(Synchronous) 요청한 작업에 대해 완료 여부를 따져 순차적으로 처리 => 하나의 작업이 완료되어야 다음 작업 수행 함수 A가 함수 B를 호출한 뒤, 함수 B의 리턴 값을 계속 확인하면서 신경씀 2. 비동기 방식(Asynchronous) 요청한 작업에 대해 완료 여부를 따지지 않기 때문에 다음 작업을 그대로 수행 함수 A가 함수 B를 호출할 때 콜백함수를 함께 전달하고 호출한 후로 함수 B의 작업 완료 여부는 신경쓰지 않음 블로킹(Blocking) & 논블로킹(Non-Blocking) 1. 블로킹(Blocking) A함수가 B함수를 호출하면 B에게 제어권을 넘긴다. A는 B에게 제어권을 넘겨주었기 때문에 함수 실행을 ..
로드밸런싱(Load Balancing) 로드밸런싱(Load Balancing) 1. 개념 컴퓨터 네트워크 기술의 일종으로 처리해야 할 업무나 요청을 둘 혹은 셋 이상의 중앙처리장치 or 저장장치와 같은 컴퓨터 자원들에게 작업을 분산하는 것 즉, 부하를 나누는 것을 의미한다. 왜 필요한가? 서비스의 클라이언트 수가 증가하게 되면 기존 서버만으로는 요청에 응답하는 것이 어렵다!! Scale-up으로 서버 자체의 성능을 확장하거나, Scale-out으로 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설 => 로드밸런싱 2. 기능 Health Check 주기적으로 서버들을 Health Check를 하는 과정을 통해 서버들의 장애 여부를 판단하여, 정상 동작 중인 서버로만 트래픽을 보낸다. L4 체크: TCP는 3 Way-Handshakin..
HTTP & HTTPS HTTP HTTPS HyperText Transfer Protocol HyperText Transfer Protocol Secure 정의 인터넷상에서 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신 규약 인터넷 상에서 SSL 프로토콜을 이용해서 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신 규약 포트 기본 포트 80 기본 포트 443 용도 이전 텍스트 기반 웹 사이트 모든 최신 웹 사이트 보안 기능 여부 X O 장점 속도가 더 빠르다. 참조 링크도 더 잘 추적한다. 민감한 데이터를 담고 있을 때 제3자가 해당 데이터를 가로채지 못한다. HTTP 프로토콜의 특징 1. Connectionless 프로토콜(비연결 지향) 클라이언트가 서버에 요청(Request) 했을 때, 그 요청에 맞는 응답(Respon..