본문 바로가기

전체 글

(35)
HTTP 완벽 가이드 - 1장 1장 - HTTP 개관 - 웹 클라이언트와 서버 웹 서버는 HTTP 프로토콜로 의사소통하여 HTTP 서버라고 불린다. 또한, 인터넷의 데이터를 저장하고 클라이언트가 요청한 데이터를 제공한다. 클라이언트(웹 브라우저)가 서버에게 HTTP 객체를 요청 하면 서버는 클라이언트에게 요청 받은 객체를 찾고, 데이터에 대한 정보와 함께 HTTP 응답을 한다. - 리소스 웹 리소스 = 웹 콘텐츠를 제공하는 모든 것 웹 서버는 이러한 웹 리소스를 관리하고 제공하며 웹 리소스는 각각 정적 파일(텍스트, HTML 등), 동적 콘텐츠 리소스(동적으로 콘텐츠를 생성하는 리소스)가 존재한다. 미디어 타입 HTTP가 웹에서 전송되는 객체에 데이터 포맷 라벨(MIME)을 붙여 어떤 타입의 데이터를 요청하는지, 또 다룰 수 있는 객..
프로그래머스 - 수식 최대화(2020 카카오 인턴십) 처음 떠올린 방법은 스택을 사용하지 않는 방법이었다. string을 *+-로 해두고 3!의 경우에 대해서 모두 계산해보는 방법을 사용했는데, 처음에 *를 expression에서 다 찾아서 계산하고, +, - 순으로 계산하는 방법을 생각했다. 이 때, vector의 값을 어떻게 변화시켜야 하는지가 바로 떠오르지 않아 다른 방법으로 풀려고 했던 것 같다. 아래는 스택을 사용한 방법인데, 각 연산자의 우선순위를 확인하여 우선순위가 높은 연산자를 먼저 수행하게끔 스택을 관리하면서 값을 계산하면 된다. (즉, 스택에 있는 연산자가 다음 연산자보다 우선순위가 높다면 바로 수행 아니면 스택에 쌓아놓는다.) 코드 - 스택을 사용한 방법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1..
프로그래머스 - 실패율(2019 KAKAO BLIND RECRUITMENT) 입출력 예시를 보면 쉽게 이해할 수 있는 문제이다. 이런 구현 문제는 항상 모든 조건을 만족하도록 코드를 짜야한다. (스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0으로 정의한다 -> 이 부분을 정의하지 않아서 한 번에 통과하지 못했다.) ex) N = 5, stages = [2, 1, 2, 1, 2]일 경우 3, 4, 5 스테이지로 간 사람이 없기 때문에 스테이지의 실패율이 모두 0이 된다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include #include #include #include using namespace std; map m; bool comp(..
프로그래머스 - 단체사진 찍기(2017 카카오코드 본선) 단체사진을 찍는 인원은 우선 총 8명이고 8명이 설 수 있는 경우의 수는 총 8! = 40320개이다. 그 중 최대 100개의 조건을 만족하는 순서쌍의 개수를 구하는 것이 문제이다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #include #include #include #include using namespace std; map m; // 전역 변수를 정의할 경우 함수 내에 초기화 코드를 꼭 작성해주세요. int solution(int n, vector data) { int answer = 0;..
프로그래머스 - 키패드 누르기(2020 카카오 인턴십) 두 엄지손가락의 거리를 구하는 로직은 2, 5, 8, 0을 누를 때에만 필요하고 나머지 숫자들에 대해서는 어떤 손가락을 사용하는지 정해져있다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 #include #include #include using namespace std; mapm; char charset[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '0',..
프로그래머스 - 오픈채팅방(2019 KAKAO BLIND RECRUITMENT) map 자료구조를 이용한 간단한 구현문제였다. uid별로 사용자를 구분하고, 각 uid에 해당하는 nickname을 미리 map에 저장 해놓는다. 이 후 이러한 입장/퇴장 정보를 저장해놓은 info 구조체를 원소로 하는 vector를 순회하며 정보를 출력하면 된다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 #include #include #include using namespace std; typedef struct info { string uid; strin..
프로그래머스 - 징검다리 건너기(2019 카카오 개발자 겨울 인턴십) 우선 stones의 배열의 크기가 20만까지 이므로 O(N^2)으로는 효율성 검사를 통과할 수 없다. 그래서 set을 이용하여 풀어보았다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include #include #include #include using namespace std; multiset s; int solution(vector stones, int k) { int answer = 0; int start = 0; for(int i=0; i
프로그래머스 - 자물쇠와 열쇠(2020 KAKAO BLIND RECRUITMENT) 이 문제는 brute-force로 쉽게 구할 수 있는 문제였다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 #include #include #include #include using namespace std; void rotate(vector &key) { queue q; for(int i=0; i