분류 전체보기 363

BFS

BFS(Breadth First Search) 그래프 순회 방법 중 하나(너비 우선 탐색) 시작 노드에서 인접노드를 방문하고, 방문한 노드에서 인접 노드를 모두 방문하는 것을 반복한다. Queue(큐)를 이용한 BFS 풀이 입력 5(노드의 수) 6(간선의 수) 0 1 0 2 1 3 1 4 2 4 3 4 (간선이 존재하는 노드의 쌍 입력) 출력 0 1 2 3 4 #include #include #include #include using namespace std; #define max 10 int n, e; int graph[max][max]; void bfs(int node){ bool visited[max]= {false}; queuemyqueue; visited[node]=true; myqueue.pu..

백준 2667 단지번호붙이기(c++)

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net (스택 쓰지 않고 풀기) #include #include #include #include using namespace std; int mov[4][2] = {{-1,0},{1,0},{0,1},{0,-1}}; bool check[26][26]; int Board[26][26]; vectorrooms; int cnt=0; int n; string s; void dfs(int x,int y) { for(..

DFS

DFS(Depth First Search) 그래프 순회 방법 중 하나(깊이 우선 탐색) 시작 노드에서 깊이가 커지는 방향으로 탐색을 진행하여 더 이상 방문할 인접 노드가 없는 경우 이전 노드가 돌아가서, 다시 깊이 우선 탐색을 반복하게 됨. 재귀 호출을 통해 구현 1. 입력 5(노드의 개수) 6(간선의 개수) 노드의 쌍 0 1 0 2 1 3 1 4 2 4 3 4 (각 쌍들 사이에 간선이 존재) 출력 0 1 3 4 2 #include #include using namespace std; #define max 10 int n, e; int graph[max][max]; bool visited[max]; void dfs(int node) { visited[node] = true; coutu>>v; graph[..

백준 2294 동전 2(c++)

https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net #include #include #include using namespace std; int main() { int n,k; cin>>n>>k; vectorv(n); vectordp(k+1); dp[0]=0; for(int i=1;iv[i]; } sort(v.begin(),v.end(),greater()); for(int i=0;i

백준 2293 동전 2(c++)

https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net #include #include #include using namespace std; int main() { int n,k; cin>>n>>k; vectorv(n); vectordp(k+1); for(int i=0;i>v[i]; } dp[0]=1; for(int i=0;i

예외처리(Exception)기능 + Response 기능(데이터 반환) 을 추가한 게시판 만들기 코드

Response package com.example.mentoring.Response; import com.fasterxml.jackson.annotation.JsonInclude; import com.sun.net.httpserver.Authenticator; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Getter; @JsonInclude(JsonInclude.Include.NON_NULL)// Null 버림 @AllArgsConstructor(access = AccessLevel.PRIVATE) @Getter public class Response { private boolean success; private ..

Java/Spring 2022.07.27

스프링 스터디(RestAPI의 다양한 기능 추가(Exception, Response..)

4주차 Custom Respose 만들기 (기존 포스트맨 결과와 비교) 예외처리 사용 및 필요성 Exception 작성 Advice 생성 및 사용 README.md 파일 만들기 Response을 커스텀해서 사용하는 이유는 ResponseEntity 클래스를 통해 리턴을 해주면 데이터의 형식을 수정할 수가 없게 된다. 즉 형식을 유동적으로 수정해주기 위해 Response를 사용한다. ResponseEntity로 데이터를 반환할 경우 Response로 데이터를 반환할 경우 Response로 데이터를 반환했을 때, ResponseEntity로 데이터를 반환했을 때 보다 더욱 다양한 틀에 감싸져 있음을 확인할 수 있다. 이렇게 사용하는게 더욱 편리한 이유는 프론트엔드 개발자의 편의를 위함과 더불어, 데이터의 형..

Java/Spring 2022.07.25

백준 1958 LCS 3(c++)

https://www.acmicpc.net/problem/1958 1958번: LCS 3 첫 줄에는 첫 번째 문자열이, 둘째 줄에는 두 번째 문자열이, 셋째 줄에는 세 번째 문자열이 주어진다. 각 문자열은 알파벳 소문자로 이루어져 있고, 길이는 100보다 작거나 같다. www.acmicpc.net #include #include #include #include using namespace std; int main() { vectordp(101,vector(101,vector(101,0))); string s1,s2,s3; cin>>s1>>s2>>s3; for(int i=1;i

백준 5582 공통 부분 문자열(c++)

https://www.acmicpc.net/problem/5582 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net #include #include #include #include using namespace std; int main() { string s1,s2; cin>>s1>>s2; vectordp(4001,vector(4001,0)); int result = 0; for(int i=1;i