반응형

전체 글 140

백준 2096 : 내려가기 (동적계획법 기본 이론, DP)

최적화 문제 동적 계획법 푸는 방법 1. 모든 답을 만들어 보고 그 중 최적해의 점수를 반환하는 완전 탐색 알고리즘을 설계한다. 2. 전체 답의 점수를 반환하는 것이 아니라, 앞으로 남은 선택들에 대해 해당하는 점수만을 반환하도록 부분 문제 정의를 바꾼다. 3. 재귀 호출의 입력에 이전에 선택에 관련된 정보가 있다면 꼭 필요한 정보만 남기고 줄인다. 문제에 최적 부분 구조가 성립할 경우에는 이전 선택에 관련된 정보를 완전히 없앨 수도 있다. (* 최적 부분 구조: 각 부분 문제의 최적해만 있으면 전체 문제의 최적해를 쉽게 구할 수 있는 경우, 이 구조에 해당한다고 할 수 있다.) -> 이 부분에서의 목표는 가능한 한 중복되는 부분 문제를 많이 만드는 것이다. 입력의 종류가 줄어들면 줄어들 수록 더 많은 ..

백준 1339 - 단어 수학(그리디 알고리즘)

문제 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다. 예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이 되어서 최대가 될 것이다. N개의 단어가 주어졌을 때, 그 수의 합을 최대로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. ..

[인프런 김영한 강의 정리 - 인터넷과 http- 6 ] - 6. HTTP status code

본 게시물은 인프런 강의(김영한 강사님의 '모든 개발자를 위한 http 강의)를 듣고 정리한 메모입니다. 1. HTTP 상태코드 1XX : (informational) - 요청이 수신되어 처리중 2XX : (Successful) - 요청 정상 처리 3XX : (Redirection) - 요청을 완료하려면 추가 행동이 필요 4XX : (Client Error) - 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5XX : (Server Error) - 서버 오류, 서버가 정상 요청을 처리하지 못함 * 모르는 상태코드가 나타나면 클라이언트는 더 상위 오류로 가서 해석한다. (그럴린 없겠지만 만약 404를 모른다면, 그래도 4xx이니까 클라이언트 오류이겠거니 하고 해석한다는 의미) 1. 1..

카테고리 없음 2023.02.12

백준 15686 - 치킨배달 (DFS, 최단거리 알고리즘, 벡트래킹)

문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다. 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로 구한다. 예를 들어, 아래와 같은 지..

카테고리 없음 2023.02.11

[인프런 김영한 강의 정리 - 인터넷과 http- 5] -5. HTTP METHOD 활용

본 게시물은 인프런 강의(김영한 강사님의 '모든 개발자를 위한 http 강의)를 듣고 정리한 메모입니다. 어떤 식으로 HTTP METHOD가 개발에서 활용되는가를 보려고 한다. 1. 클라이언트에서 서버로 데이터 전송 클라이언트에서 서버로 데이터를 전송하는 방법은 크게 두 가지이다. 쿼리 파라미터 사용하기 GET 메소드를 활용할 때 사용하고, 주로 정렬이나 필터를 이용 시에 사용한다. 메시지 바디를 활용한 메시지 전송 PUT, PATCH, POST 메소드를 활용할 때 사용하고, 회원가입, 회원 등록, 회원 변경, 상품 주문등에 사용한다. *상황 별 메소드 사용법 1. 정적 데이터 조회 GET 메소드를 기본적으로 사용한다. 2. 동적 데이터 조회 GET 메소드를 사용하되, 쿼리 파라미터도 사용한다. GET ..

[인프런 김영한 강의 정리 - 인터넷과 http- ] - 4. HTTP METHOD

본 게시물은 인프런 강의(김영한 강사님의 '모든 개발자를 위한 http 강의)를 듣고 정리한 메모입니다. 1. HTTP API 설계를 해보자. URI : Uniform Resource Identifier. Resource에 맞추어서 API를 설계해야 한다. 회원 조회 회원 등록 회원 정보 변경 회원 삭제 → 모두 Resource가 회원이므로 회원 조회 : /members 회원 등록 : /members{id} 회원 정보 변경 : /members{id} 회원 삭제 : /members{id} → 동사가 아니라(조회, 등록, 정보변경, 삭제 ) 명사로 적기. → 계층 구조상 상위를 컬렉션으로 보고서 복수 단어 사용을 권장한다. : mebers. 2. Resource에 관한 메서드들. a. GET : 리소스 조회..

백준 1039 - 교환 (안보이는 DFS, BFS)

교환 시간 제한 메모리 제한 2 초 128 MB 문제 0으로 시작하지 않는 정수 N이 주어진다. 이때, M을 정수 N의 자릿수라고 했을 때, 다음과 같은 연산을 K번 수행한다. 1 ≤ i < j ≤ M인 i와 j를 고른다. 그 다음, i번 위치의 숫자와 j번 위치의 숫자를 바꾼다. 이때, 바꾼 수가 0으로 시작하면 안 된다. 위의 연산을 K번 했을 때, 나올 수 있는 수의 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N과 K가 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, K는 10보다 작거나 같은 자연수이다. 출력 첫째 줄에 문제에 주어진 연산을 K번 했을 때, 만들 수 있는 가장 큰 수를 출력한다. 만약 연산을 K번 할 수 없으면 -1을 출력한다. 1. 문제 해석 - ..

[42 NetPractice] - 2 오류 모음(1/2) - error on gate ip - multiple interface match

error on gate ip - multiple interface match 그림을 보면, 민트색 칸에 OK와 KO가 섞여 있다. 현재 Goal 4~7이 안되고 있는 상황이다. Goal 6,7은 foward way 보내는 것 자체가 안되고(H3-> internet) (H4->internet) Goal 4,5는 reverse way로 돌아오는 경로가 되지 않고 있다. (H1 -> H4, H2->H3) : H3, H4쪽에 문제가 있는 것으로 유추할 수 있다. 지금부터 돌아가는 상황을 제대로 파악하면서 문제가 뭔지 알아내려고 한다. Goal 5가 안되는 문제를 살펴보자. H2 : Host two가 Host three(H3) 와 통신하는 과정이다. 목표: H2->H3 1~6 : H2에서 모든 입력에 대해 16..

[42 NetPractice] - 2 오류 모음(2/2) - invalid IP

이번에 살펴볼 오류는 invalid IP address이다. 문제를 풀다보면 다음과 같은 오류가 뜨면서 KO가 뜬다. on interface R22: invalid IP address 처음에는 나도 이게 왜 생기는 지 이유를 몰라서 서브넷만 주구장창 계산하고 있었는데 , 알고보니 IP 주소에 특정한 규칙이 있어서 생기는 문제였다. 42 Netpractice 과제에서 규정하는 IPv4 에서는 사용하면 안되는 IP주소가 있는데 이는 다음과 같다: Loop back IP address : 127.0.0.1 루프백 주소 loop-back 이라도 불리는 loopback 주소는 호스트 자신을 가리키는 IP(:12) 주소다. 주로 네트워크(:12) 관련 프로그램이나 환경의 테스트를 위한 목적으로 사용한다. Priva..

c++ 프로모션(연산 시 정수형, unsigned 변환)

c++ 자료형의 프로모션 사칙연산이나 대소 비교 등의 이항 연산자들은 두개의 피연산자를 받는다. 만약 피연산자의 자료형이 다르거나 자료형의 범위가 너무 작은 경우 컴파일러들은 이들을 같은 자료형으로 변환해서 계산하고 이를 프로모션이라고 한다. c++에서 적용되는 규칙은 다음과 같다. 한쪽은 정수형이고 한쪽은 실수형일 경우: 정수형이 실수형으로 변환된다. 양쪽 다 정수형이거나 양쪽다 실수형인 경우: 넓은 범위를 갖는 자료형으로 변환된다. 양쪽 다 int형보다 작은 정수형인 경우: 양쪽 다 int형으로 반환된다. 부호 없는 정수형과 부호 있는 정수형이 섞여 있을 경우 : 부호 없는 정수형으로 변환된다. 연산 될 때 원하지 않는 값이 나오지 않는다면, 조심하도록 하자!

728x90
728x90