본문 바로가기

CS

(54)
[ 이것이 취업을 위한 코딩 테스트다 with 파이썬 ] Chapter 03 그리디 - 이론과 예제 1 _ 그리디 알고리즘 문제 유형 그리디 = 탐욕법 현재 상황에서 지금 당장 좋은 것만 고르는 방법 문제에서 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 기준을 제시해 주는 경우 사용 정렬 알고리즘과 자주 짝을 이루어 출제 2 _ 그리디 알고리즘 설명 2 - 1 ) 예제 당신은 음식점의 계산을 도와주는 점원이다. 카운터에서 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구하라. 단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다. 2 - 2 ) 예제 해설 주요 포인트 가장 큰 화폐 단위부터 돈을 거슬러 주는 것 문제 알고리즘 거슬러 줘야 할 총 돈: N, 동전의 개수: ..
[프로그래머스(programmers)] 스택/큐 | 기능개발 | Level 2 | c++ 출처 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제 1_문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의..
[프로그래머스(programmers)] 이분탐색 | 입국심사 | Level 3 | c++ 출처 https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제 1_문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다..
HTML의 주요 태그 목차 제목 태그 링크 태그 이미지 태그 목록 태그 테이블 태그 기타 태그 제목 태그 제목 태그에는 , , , , , 이 있다. 이 폰트 크기가 가장 크고 이 가장 작다. 숫자가 커질수록 폰트 크기가 작아진다. 링크 태그 링크 태그는 이며 하이퍼링크를 생성한다. 링크태그는 href 라는 속성을 사용하고, 태그의 구조는 내용 이다. 이미지 태그 이미지 태그는 이며 이미지를 삽입하는 태그이다. 이미지 태그는 scr, width, height 라는 속성을 이다. 목록 태그 목록 태그에는 , , 가 있다. 은 순서 없는 목록(unordered list) 태그이고, 은 순서 있는 목록(ordered list) 태그 이다. 는 목록에서 각 항목(list item)을 나타내는 태그이다. 보통 과 사이나 과 사이에 태그..
HTML의 개념, 기본 구조, 요소(element) 구조 목차 HTML의 개념 HTML의 기본 구조 HTML의 요소(element) 구조 HTML의 개념 HTML(Hypertext Markup Language)은 웹 페이지를 표현하는 데 사용되는 마크업 언어이다. 좀 더 자세히 말하면, 웹브라우저가 HTML의 문법을 해석해서 화면에 웹페이지를 보여주는 것이다. HTML은 주로 웹페이지에서 '무엇을 어디에 배치할지'와 같이 구조화하는 데 사용된다. 쉽게 말해서, 인테리어를 한다고 가정하면 방 하나가 웹 페이지이고 가구들을 배치하는 데 사용되는 것이 HTML이다. (나중에 포스팅할 CSS는 배치된 가구들의 디자인이라고 이해하면 된다.) HTML의 기본 구조 1) HTML의 기본 구조 HTML은 기본적으로 다음과 같음 구조를 가지고 있다. 로 감싸져 있는 영역이 영..
웹 서버 vs WAS 목차 웹 서버 vs WAS WAS를 사용하는 이유 웹 서버 vs WAS 1) 웹 서버 웹 서버는 웹 클라이언트의 요청에 따라 콘텐츠를 제공하는 서버이다. 이때, 웹 서버는 정적인 컨텐츠(html, css, js)를 웹 브라우저에게 제공하는 역할을 한다. 예를 들어, Apache, Nginx 등이 있다. 2) WAS WAS는 웹 클라이언트의 요청에 따라 콘텐츠를 제공하는 서버이다. 이때, WAS는 DB 조회나, 어떤 로직을 처리해야 하는 동적인 컨텐츠(asp, php, jsp)를 웹 브라우저에게 제공하는 역할을 한다. 또한 자체적으로 웹서버의 기능도 가지고 있어서 정적인 콘텐츠를 처리하기도 한다. 보통 프로그램이 동작해서 얻은 결과를 보통 동적인 콘텐츠라고 말한다. 예를 들어, Tomcat, Jeus 등이..
브라우저와 렌더링 엔진 동작 원리 더보기 🙋 오늘 포스팅에서는 서버로부터 전달(응답)받은 자원을 어떻게 화면에 출력하는 지를 다룰 예정이다. 이 글을 읽고 나면, 브라우저 주소 창에 google.com을 입력했을 때 어떤 과정을 거쳐 구글 페이지가 화면에 보이게 되는지 알게 된다. 목차 브라우저 브라우저의 구성 요소 렌더링 엔진의 동작 원리 브라우저 1) 브라우저 란? 브라우저란 월드 와이드 웹(WWW)에서 정보를 검색, 표현하고 탐색하기 위한 소프트웨어이다. 예를 들어, 구글 크롬, 인터넷 익스플로러 등과 같이 검색창이 있는 프로그램이라 생각하면 된다. 브라우저는 인터넷에서 특정 정보로 이동할 수 있는 주소 입력창(=인터페이스)이 있고, 서버와 HTTP로 정보를 주고 받을 수 있는 네트워크 모듈도 포함하고 있다. 서버에서 받은 문서(H..
웹(WWW)의 동작 원리 목차 웹의 동작 원리 웹 클라이언트 웹 서버 웹 애플리케이션 서버 (WAS) 데이터 베이스 (DB) 웹의 동작 원리 웹의 동작 원리를 다음과 같이 한 문장으로 정리할 수 있다. 「 클라이언트가 서버에 요청을 보내면 서버는 해당 요청에 대해 응답한다. 」 그리고 이 문장을 그림으로 표현하면 다음과 같다. 웹 동작 순서 ① 사용자가 웹 브라우저의 검색창에 특정 사이트의 주소를 입력한다. ② 웹 브라우저가 DNS에게 특정 사이트의 (도메인)주소를 요청한다. ③ DNS가 웹 브라우저에게 사이트의 IP주소를 응답한다. ④ 웹 브라우저가 웹 서버에게 IP 주소를 이용하여 html 문서를 요청한다. ⑤ 웹 서버는 바로 웹 페이지를 공급하지 못하고, 웹 애플리케이션 서버와 데이터 베이스에서 웹 페이지 작업을 처리한다...
[ 웹(WWW) 기본 개념 ] URL, HTTP, IP, 도메인, 포트 목차 URL HTTP IP 주소 도메인 주소 포트 주소 URL 1) URL 이란? URL은 웹상에서 문서, 이미지, 동영상 등의 자원들의 위치를 나타내는 주소이다. 쉽게 말해서, 웹 페이지를 찾기 위한 주소를 말한다. 예를 들어, 구글 URL → https://www.google.co.kr/ 네이버 URL → https://www.naver.com/ 티스토리 URL → https://www.tistory.com/ 이다. 2) URL의 구조 URL은 크게 3가지로 구성되어 있다. 첫 번째, 프로토콜 종류 두 번째, 자원이 있는 서버의 IP 주소, 도메인 주소, 포트 주소 세 번째, 자원의 위치 그러므로 URL 은 보통 " 프로토콜 // IP 주소 or 도메인 주소 or 포트 주소 / 자원 위치 " 의 형식..
인터넷(Internet)과 웹(WWW) 목차 인터넷의 개념, 구성과 인터넷 서비스 종류 웹의 개념, 특징 그리고 구성 인터넷의 개념, 구성과 인터넷 서비스 종류 1) 인터넷의 개념 인터넷은 TCP/IP(Transmission Control Protocol/Internet Protocol)라는 통신 프로토콜을 기반으로 하여 전 세계적으로 연결된 컴퓨터 네트워크를 말한다. 즉 세계의 크고 작은 컴퓨터 네트워크들이 모여서 이루어진 것이 바로 인터넷(Internet) 이다. 2) 인터넷의 구성 인터넷은 클라이언트와 서버로 구성되어 있다. 여러 컴퓨터가 각각 클라이언트와 서버로써 연결되어 있고, TCP/IP를 이용해 정보를 주고받는다. 그러므로 인터넷이란 수많은 클라이언트 컴퓨터와 서버 컴퓨터, 그리고 이들로 구성된 네트워크들의 집합체인 것이다. 3)..
정렬 알고리즘 (2) (삽입, 퀵 정렬) 목차 삽입 정렬 설명 및 코드 구현 퀵 정렬 설명 및 코드 구현 삽입 정렬과 퀵 정렬의 시간 복잡도 삽입 정렬 설명 및 코드 구현 1) 삽입 정렬이란? 삽입 정렬이란 각각의 원소들이 자신의 위치를 찾아서 삽입되는 정렬이다. 그림으로 설명하면, 정렬을 시작할 때, 가장자리에 있는 숫자를 기준으로 정렬을 시작한다. 위 그림에서는 4를 기준으로 정렬을 시작한다. ① 3 4 이므로, 그대로 있는다. ④ 12 > 10 이므로, 그대로 있는다. ⑤ 1 < 2 이므로, 1은 2보다 앞에 배치된다. ⑥ 4 < 5 < 10 이므로, 5는 4와 10 사이에 배치된다. ⑦ 5 < 6 < 10 이므로, 6은 5와 10..
메모리의 구조 (코드, 데이터, 힙, 스택 영역) 목차 메모리 코드(code) 영역 데이터(data) 영역 힙(heap) 영역 스택(stack) 영역 오버 플로우 메모리 위 그림과 같이, 프로그램이 실행되기 위해서는 운영체제(OS)가 프로그램의 정보를 메모리에 로드 해야 한다. 또한 프로그램이 실행되는 동안 CPU가 코드를 처리하기 위해서는, 메모리가 명령어와 데이터들을 저장해야 한다. 이렇게 프로그램이 운영체제(OS)로 부터 할당받는 대표적인 메모리 공간은 코드(code) 영역, 데이터(data) 영역, 힙(heap) 영역, 스택(stack) 영역으로 구성되어 있다. 코드(code) 영역 코드 영역은 실행할 프로그램의 코드가 저장되는 영역이다. 텍스트 영역이라고 부르기도 한다. CPU는 코드 영역에 저장된 명령을 하나씩 가져가서 처리하게 된다. 프로그..