java

    POST API 만들기

    POST API💡저장하고자 하는 리소스나 값을 body에 담아서 서버에 전달하는 방식body는 보통 JSON 형식으로 주고받는다. (XML도 있긴하다.)공통 URL 생성하기package com.springboot.api.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/v1/post-api") public class PostController { }@RequestBody를 활용한 POST 메서드 구현2가지 방식으로 구현한다.어떤 형태로 값이 들..

    동적 계획법

    동적 계획법이 뭔데?분할 정복에서 중복 부분문제를 캐시(cache)를 이용하여 계산 결과를 재활용하여 속도 향상을 꾀하는 기법이다.예시피보나치 수열의 [i]번째 결과값을 출력하고싶다고 하자.해당 메소드는 fibo(i)를 이용하여 값을 얻는다.int fibo(int i){ // 기저사례 if(i == 0 || i == 1){ return 1; } if(cache[i] != -1){ return cache[i]; } cache[i] = fibo(i-1) + fibo(i-2); return cache[i]; }초기 cache 상태는 다음과 같다.fibo(4)는 fibo(3) + fibo(2) 연산이 이루어진다.fibo(3)에서는 fibo(2) + fibo(1) 연산이 이루어진다.fibo(2)에서는 fibo(1..

    GET API 만들기

    다음처럼 Controller 패키지에 GetController를 생성한다.package com.springboot.api.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/v1/get-api") public class GetController { }매개변수가 없는 GET 메서드 구현GetController내에 @GetMapping(”/name”) Annotation을 사용하여 메서드를 생성한다.추후에는 메서드 형식에 맞게 다음처럼 Annotat..

    프로젝트 생성하기

    다음 사이트에 접속한다.Spring InitializrInitializr generates spring boot project with just what you need to start quickly!https://start.spring.io/ 위와같이 설정한 후 GENERATE를 눌러 프로젝트를 생성한다. 위와 같이 com.springboot.hello에 Controller 패키지를 생성한다.이후 HelloController 클래스를 작성한다.package com.springboot.hello.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotat..

    Talend API Tester를 통해 동작 테스트를 해보자

    크롬 확장 프로그램을 이용하여 API를 테스트해보자. 다음 사이트로 들어가 확장 프로그램을 설치한다.Talend API Tester - Free EditionVisually interact with REST, SOAP and HTTP APIs.https://chrome.google.com/webstore/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm?hl=ko이후 크롬 브라우저에서 해당 확장 프로그램을 실행한다.URI 위치에 테스트용 API, 다음을 입력한다.https://jsonplaceholder.typicode.com/todos/1결과를 확인한다. Uploaded by N2T

    [BOJ/JAVA] 9019번: DSLR

    키워드D: D 는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경우에는 10000 으로 나눈 나머지를 취한다. 그 결과 값(2n mod 10000)을 레지스터에 저장한다.S: S 는 n에서 1 을 뺀 결과 n-1을 레지스터에 저장한다. n이 0 이라면 9999 가 대신 레지스터에 저장된다.L: L 은 n의 각 자릿수를 왼편으로 회전시켜 그 결과를 레지스터에 저장한다. 이 연산이 끝나면 레지스터에 저장된 네 자릿수는 왼편부터 d2, d3, d4, d1이 된다.R: R 은 n의 각 자릿수를 오른편으로 회전시켜 그 결과를 레지스터에 저장한다. 이 연산이 끝나면 레지스터에 저장된 네 자릿수는 왼편부터 d4, d1, d2, d3이 된다.구현각 4가지 동작 방식을 구현한다.이후 너비우선 탐색을 이용하여 한 ..

    [BOJ/JAVA] 17129번: 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유

    17129번: 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유윌리암슨수액빨이딱따구리 세 식구가 정보섬에 올라왔다! 세 윌리암슨수액빨이딱따구리는 정보섬 2층 어딘가에 모여 앉아 쉬고 있었는데, 저 멀리 청국장과 스시와 맥앤치즈가 있는 것을 발견했다! 아빠는 청국장, 엄마는 스시, 아이는 맥앤치즈가 먹고 싶다. 그래서 이 셋은 현위치로부터 가장 가까운 음식을 먹으러 가기로 했다. 정보섬 2층은 A n×m의 격자로 표현된다.https://www.acmicpc.net/problem/17129키워드정보섬 2층은 A[n][m]의 격자로 표현어떤 A[i][j]가 0이면 빈 복도여서 지나갈 수 있고, 1이면 장애물로 막혀 지나갈 수 없다.윌리암슨수액빨이딱따구리 식구는 2, 청국장은 3, 스시는 4, 맥앤치즈는 5이다.현..

    [BOJ/JAVA] 13023번: ABCDE

    13023번: ABCDEhttps://www.acmicpc.net/problem/13023키워드오늘은 다음과 같은 친구 관계를 가진 사람 A, B, C, D, E가 존재하는지 구해보려고 한다.A는 B와 친구다.B는 C와 친구다.C는 D와 친구다.D는 E와 친구다.위와 같은 친구 관계가 존재하는지 안하는지 구하는 프로그램을 작성구현한 노드에서 다른 노드로의 최대 거리를 구하는 문제이다.깊이 우선 탐색을 이용하여 구현한다.최대 거리가 4 이상이면 위와 같은 친구관계가 존재하는 것이고 그렇지 않으면 존재하지 않는다.코드import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.uti..

    [BOJ/JAVA] 4803번: 트리

    4803번: 트리입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 n ≤ 500과 m ≤ n(n-1)/2을 만족하는 정점의 개수 n과 간선의 개수 m이 주어진다. 다음 m개의 줄에는 간선을 나타내는 두 개의 정수가 주어진다. 같은 간선은 여러 번 주어지지 않는다. 정점은 1번부터 n번까지 번호가 매겨져 있다.https://www.acmicpc.net/problem/4803키워드트리는 사이클이 없는 연결 요소트리는 정점이 n개, 간선이 n-1개임의의 두 정점에 대해서 경로가 유일그래프가 주어졌을 때, 트리의 개수를 세는 프로그램구현DisjontSet을 이용하여 트리인지를 판단하였다.cycle[]해당 노드가 사이클에 속하는지 판단하는 배열★merge★ :: 핵심 메소드두 노드..

    [BOJ/JAVA] 1991번: 트리 순회

    1991번: 트리 순회문제 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) 후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트) 가 된다.https://www.acmicpc.net/problem/1991키워드이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal),..