전체 글 171

프로그래머스 Level3 - 여행경로 C++

중간에 그래프가 끊기는 경우를 생각하지 못했다. 알파벳이 우선순위가 되니까 먼저 정렬을 해준다. 주어진 항공권은 모두 사용해야하므로, 몇개의 항공권을 사용했는지 체크하는 cnt와 사용한 항공권은 다시 사용하지 않게 visit배열을 사용하면서 탐색한다. 방문하지 않았고, cur과 tickets의 출발지(tickets[i][0])가 같으면 방문표시를 하고, dfs로 그래프가 끊기지 않는지 check변수로 체크한다. check변수가 true이면 끊기지 않는다는 것이므로 return 아니면 visit배열을 다시 false로만들고, answer에 넣었던 것들을 다시 pop해준다. 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 ..

프로그래머스 Level3 - 단어 변환 C++

이 문제는 오타 때문에 고생했던 문제다.... begin단어에서 하나만 다른 걸 찾아 나가면 되는데, 재귀함수로 풀면 쉽게 풀린다. 방문체크/변환 가능 여부를 따진다. 그리고 단계마다 1씩 더해가면서 재귀 돌리면 끝~! 답은 최소 단계 찾기,words의 최대 수 50이니까 answer 초기값을 51로 설정해주고, 나중에 이 51이 그대로면 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 #include #include using namespace std; int answer=51; void dfs(..

프로그래머스 Level3 - 네트워크 C++

주어진 컴퓨터가 연결되어 있는 만큼 네트워크의 수를 구하는 문제. 지인짜 간단한 문제 같지만 백준에서만 풀어봐서 그런지 익숙하지가 않았다 백준에서는 그냥 전역변수로 선언하는 식으로 했었는데 이건 함수로 주어지니까 얘를....전역으로 복사를 해야되나..했는데 그러기엔 너무 비효율적이고.. 걍 포인터를 쓰면 될 일이었음..^^ 풀이) visit vector를 두고, n만큼 반복해주면 된다 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 #include #include using namespace std; void dfs(vector& visit, vector& computers, int n, int v){ vis..

프로그래머스 Level2 - 타켓 넘버 C++

numbers에 주어지는 수를 요리조리 더하거나 빼서 주어진 target과 일치하는지, 타겟 넘버를 만들 수 있는 방법의 수를 찾는 문제다. 우선 배열에 들어가 있는 수들의 모든 경우의 수를 따져야 한다. 재귀를 돌면서 각각 더하는 경우와 빼는 경우 모두 구해주면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include #include using namespace std; int answer = 0; void dfs(vector numbers, int index, int sum, int target){ if(index==numbers.size()){ if(sum==target) answer++; return; } dfs(num..

spring : @Valid Annotation 적용 안되는 문제

@PostMapping("/register/step3") public String handleStep3(@Valid RegisterRequest regReq, Errors errors){ new RegisterRequestValidator().validate(regReq,errors); if(errors.hasErrors()) return "register/step2"; //중략 spring을 공부하는 중에, @Validated 는 되는데 @Valid는 직접 import문을 작성해도 추가되지 않았다. 이유를 찾아보니까 최신버전에는 javax.validation 이 적용되지 않는다고 한다. spring boot를 쓴다면 spring-boot-start-validation 을 추가해 주던가, hibernat..

web/error 2021.07.08

[intelliJ] spring 오류 : would dispatch back to the current handler URL [/register/step1] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

Circular view path [/register/step1]: would dispatch back to the current handler URL [/register/step1] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) 이런 오류가 떴다. ViewResolver 설정을 다시 살펴보자. 아니면 Annotation을 잘못 설정하지는 않았는지 나는 후자였다. 참나

web/error 2021.07.06

BOJ/백준 - 1436 영화감독 숌

문제 이해를 잘 못해서 도움을 받은 문제.. 연속된 666을 찾으면 되는건데, N번째로 작은 종말의 숫자와 같다. 작은!!!!! 그래서 666 1666 2666 . . 5666 6666 =666까지만 반복하며, 종말의 숫자를 만족하면 cnt를 증가시키고, 아니면 1의 자리를 하나씩 지우는 식. 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 using namespace std; int main() { int N; cin >> N; int result = 665; int cnt = 0; while (cnt!=N) { int tmp = ++result; while (tmp >= 666) { if (tmp % 1000 == ..

Algorithm/C++ - BOJ 2021.06.22

Graph

그래프(Graph) 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조. 그래프는 간선 종류에 따라 무방향 그래프(undirected graph)와 방향 그래프(directed graph)로 구분됨. 간선에 비용이나 가중치가 할당된 그래프를 가중치 그래프(weighted graph) 또는 network라고 한다. 네트워크는 도시와 도시를 연결하는 도로의 길이, 회로 소자의 용량, 통신망의 사용료 등을 추가로 표현할 수 있으므로 응용 분야가 매우 광범위하다. 인접 정점(adjacent vertex) : 간선에 의해 직접 연결된 정점 차수(degree) : 하나의 정점에 인접한 정점의 수 (undirected graph는 간선X2) directed graph에서 (=) 진입 차수(in-degree) :..

Algorithm/이론 2021.06.15