본문 바로가기

Method5

[HTTP] HTTP 메소드와 사용 예 인프런에서 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 듣고 있습니다. URI와 리소스, HTTP 메소드에 대한 내용을 공부하였고, 이를 진행 중인 토이 프로젝트에 적용시켜 보고자 하였습니다. 1. URI와 리소스 2. 리소스와 HTTP 메소드 3. HTTP 메소드 5가지 4. 실제 코드에 적용시켜 보기 5. 기타 1. URI와 리소스 URI란, "Uniform Resource Identifier" 의 줄임말입니다. 즉, "리소스 식별자" 라고 할 수 있습니다. 이 외에 URL, URN이 존재합니다. URL은 "Uniform Resource Locator", URN은 "Uniform Resource Name"의 약자입니다. URL은 특정 리소스의 위치를 가리키며, URN은 특정 리소스의 이름을 .. 2022. 7. 19.
Java에서 메소드의 parameter가 배열일 때 생기는 의문 알고리즘 문제풀이를 Java로 진행하다가 해결되지 않은 궁금증이 하나 생겨서 정리해 둡니다. 제가 C++로 알고리즘 문제풀이를 하던 당시에는 함수 (function)이 있었고, 이 함수가 필요로 하는 매개변수 (parameter)가 있었습니다. 이 매개변수는 단순한 int나 char형 값일 수도 있었지만, vector나 set이 넘어오는 경우도 있었습니다. 이 때 따로 포인터를 이용하여 call by reference로 지정해 주지 않는다면, 기본적으로 call by value로 매개변수를 받아서 수행하였습니다. Java에서 비슷한 방식으로 문제를 접근하다 보니 이해되지 않는 상황을 마주하게 되었습니다. 비슷하게 메소드를 작성하고, 이를 C++에서와 같은 방식으로 사용하였는데, 매개변수가 배열일 때는 제.. 2022. 1. 23.
그리디 그리디 (Greedy Method) 알고리즘에 대해 다루어보고자 합니다. Greedy는 한국어로 번역하여 탐욕법, 또는 욕심쟁이 알고리즘이라고도 합니다. 그리디 알고리즘이라고도 하는데, 개인적으로 알고리즘보다는 방법 (method)이 더 어울리는 표현이라고 생각합니다. 이하 '그리디 알고리즘' 이라고 표현을 통일하겠습니다. 그리디 알고리즘은 이름에서 알 수 있듯, 단순하게 탐욕적으로 문제를 해결하는 방법을 의미합니다. 즉, 지금 당장 현재 상황에 가장 좋은 선택지를 고르는 방법을 뜻합니다. 중요한 점은 이 선택이 추후에 미칠 영향에 대해서는 고려하지 않는다는 점입니다. 따라서 최적해를 보장하지는 않습니다. 그리디 알고리즘은 그 의미가 매우 넓습니다. 두루뭉실하게 '현재 가장 좋은 선택지를 고른다'고 뜻이.. 2021. 1. 30.
[백준 17497번] 계산기 난이도: 골드 2 문제 링크: www.acmicpc.net/problem/17497 17497번: 계산기 첫 번째 줄에 버튼을 누른 횟수 K (0 ≤ K ≤ 99) 를 출력합니다. 누른 횟수를 최소화 하지 않아도 됩니다. 단, 누른 횟수가 99번을 넘으면 안됩니다. 만약 99번 안에 N을 만드는 방법이 존재하지 않는 www.acmicpc.net 백준에서는 이 문제를 greedy method라고 분류해는데, greedy method가 맞는지 개인적으로는 잘 모르겠습니다. 처음에는 greedy method 방법으로 접근했습니다. 현재 값 x에서 곱하기, 빼기, 곱하기, 나누기 연산을 해 보고, 주어진 값 N까지의 절댓값이 가장 작은 방법을 고르는 식으로 했는데, 코드도 100줄 가량으로 길어질 뿐더러 N =.. 2020. 11. 5.
[백준 1202번] 보석 도둑 문제 링크: www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 대표적인 Greedy Method를 이용하는 문제입니다. 제가 접근한 방법은, 가지고 있는 보석을 값이 비싼 순서대로 정렬한다. 비싼 보석부터 차례로 가방에 넣습니다. 더 담을 수 있는 가방이 없으면, 프로그램을 종료하고, 가방에 넣은 보석의 총 값어치를 출력합니다. 이를 위하여 보석의 정보를 기록하기 위하여 형식의 pair라는 타입을 만.. 2020. 10. 12.