Tiny Finger Point Hand With Heart
본문 바로가기
728x90
반응형

전체 글169

[프로그래머스/python/level 1] 예산 - 12982 [level 1] 예산 - 12982 문제 링크 성능 요약 메모리: 10.1 MB, 시간: 0.02 ms 구분 코딩테스트 연습 > Summer/Winter Coding(~2018) 채점결과 정확성: 100.0 합계: 100.0 / 100.0 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해.. 2023. 1. 12.
36. Transaction과 ACID 트랜젝션 여러작업들을 하나로 묶은 단위. 한 덩어리의 작업들은 모두 실행되거나, 실행되지 않는다. (all-or-nothing) 트랜젝션이 왜 필요할까요? 예를 들면, A 은행 → B은행으로 돈을 보내기 위하여 출금하고 송금한다고 가정합니다. A은행에서 돈을 출금하고나서 B은행으로 송금하려고 하는데 갑자기 시스템이 멈추면 어떻게 될까요? 돈은 출금되었지만, 송금되지 않고 증발하게 되는 끔찍한 상황이 발생합니다. 트랜젝션은 이런 상황이 일어나지 않도록 보장해줍니다. 대부분의 데이터베이스는 송금이 되다가 마는 상황이 발생하지 않도록 여러가지 방법을 제공하지만, 공통적으로 제공하는 가장 기본적인 방법은 Transaction을 통하여 데이터의 유효성을 보장하는 것 입니다. 트랜잭션의 상태 활동 상태 트랜잭션이 .. 2023. 1. 12.
[백준/Python/Silver III] 1, 2, 3 더하기 - 9095 [Silver III] 1, 2, 3 더하기 - 9095 문제 링크 성능 요약 메모리: 113112 KB, 시간: 124 ms 분류 다이나믹 프로그래밍(dp) 문제 설명 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 👉나의생각.. 2023. 1. 11.
[프로그래머스/Python/level 1] 체육복 - 42862 [level 1] 체육복 - 42862 문제 링크 성능 요약 메모리: 10.2 MB, 시간: 0.01 ms 구분 코딩테스트 연습 > 탐욕법(Greedy) 채점결과 정확성: 100.0 합계: 100.0 / 100.0 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난.. 2023. 1. 11.
35. UDP/TCP 특징 및 차이점 전송계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층인데, IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당한다. 이러한 전송계층에서 사용되는 프로토콜이 바로 TCP와 UDP이다. TCP(Transmission Control Protocol) TCP는 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜이다. 일반적으로 TCP와 IP가 함께 사용되는데, IP가 데이터의 전송을 처리한다면 TCP는 패킷 추적 및 관리를 하게 된다. 연결 지향형인 TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작하는데, 흐름 제어와 혼잡 제어를 지원하며 데이터의 순서를 보장한다. *흐름 제어: 보내는 측과 받는 측의 데이터 처리속도 차이를.. 2023. 1. 11.
34. TCP 프로토콜 연결 / 종료 과정 TCP란 네트워크 계층 중 전송계층에서 사용하는 프로토콜로서, 장치들 사이에 논리적인 접속을 설입하기 위해 연결을 설정하여 신뢰성을 보장하는 연결형 서비스 TCP Handshake 란? OSI 7계층 중 Network layer에 해당하는 프로토콜인 TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 3-way handshake를 사용하고 세션을 종료를 성립하기 위해 4-way handshake를 사용한다. 즉, TCP Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. 3-way handshake 접속 과정 1. 클라이언트는 접속을 요청하는 .. 2023. 1. 10.
34. SOLID 란? 객체지향 설계과정 요구사항 (제공해야 할 기능) 을 찾고 세분화 한다. 그리고 그 기능을 알맞은 객체로 할당한다. 기능을 구현하는 데에 필요한 데이터를 객체에 추가한다. 해당 데이터를 이용하는 기능을 구현한다. (기능은 최대한 캡슐화) 객체 간에 어떻게 메소드 호출을 주고받을 지 결정한다. >SRP (Single Responsibility) 단일 책임 원칙 클래스는 단 한개의 책임을 가져야 함 클래스를 변경하는 이유는 단 하나여야 함 이를 지키지 않으면, 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향을 미칠 수 있음 → 이렇게 되면 유지보수가 매우 비효율적 SRP 에서 이야기하는 책임이란, '기능' 정도로 생각하면 된다. 만약 한 클래스가 수행할 수 있는 기능 (책임) 이 여러 개라면, 클래스 .. 2023. 1. 10.
33. 웹브라우저에 www.google.com을 치면 일어나는 일 1. 브라우저는 www.google.com의 해당 IP 주소를 찾기 위해 DNS 캐시를 탐색. DNS 기록을 찾기 위해 브라우저는 다음과 같은 과정을 거친다. 1) 브라우저 캐시를 확인합니다. 브라우저는 이전에 방문한 웹사이트에 대해 일정기간 동안의 DNS 정보들을 저장해놓는다. 2)브라우저 캐시에 없으면 브라우저는 OS에 systemcall을 통해 DNS 기록을 가져옵니다. OS도 DNS 기록들을 캐시에 기록하기 때문. 3) 라우터 캐시를 확인합니다. 컴퓨터에 없는 경우 브라우저는 자체 DNS 레코드 캐시를 유지 관리하는 라우터와 통신한다. 4) 모든 단계에 실패하면 브라우저는 ISP로 이동합니다. ISP는 DNS 캐시를 포함하는 자체 DNS 서버를 유지 관리한다. 2. 캐시에 없으면 ISP의 DNS .. 2023. 1. 9.
32. 디자인패턴이란? 디자인 패턴(Design Pattern)이란? 사람들은 같은 실수를 반복하지 않기 위해 자신들의 시행착오를 바탕으로 특정 상황에서 발생하는 문제 패턴을 발견하고 해결방안을 기록으로 남겼다. 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것입니다. 이를 ‘디자인 패턴’이라고 부른다. 디자인 패턴 계의 교과서로 불리는 [GoF의 디자인패턴]에서는 객체지향적 디자인 패턴의 카테고리를 "생성 패턴(CreationalPattern)", "구조 패턴(Structural Pattern)", "행동 패턴(Behavioral Pattern)" 3가지로 구분하고 있다. 생성(Creational) 패턴 구조(Structural) 패턴 행동(Behavioral) 패턴 Sing.. 2023. 1. 9.
728x90
반응형