전체 글 115

[백준 1012] 유기농 배추

유기농 배추 (DFS) 문제설명 dfs알고리즘을 사용한 문제로 노드간의 연결된 관계를 파악하여 그 갯수를 세는 문제이다. 알고리즘 순서 테스트케이스(T)와 밭의 가로세로 크기(M,N), 간선의 갯수(K)를 입력 받는다. 연결관계를 2차원 graph에 1로 표현한다. 예) 2,3 -> graph[2][3]=1 graph를 반복해서 연결관계가 1이고 현재 방문하지 않은 노드를 방문한다. dfs함수에서 방문했다는 visited[x][y]=1 표현으로 방문 여부를 체크하고 현재 노드에서 상,하,좌,우 연결관계를 재귀적으로 확인한다. 재귀적인 확인을 마친뒤 다시 main 함수로 돌아오면 answer값을 증가시킨다. 여러번 테스트를 위해서 vector에 값을 담아 놓았다. #include #include #incl..

Algorithm 2021.07.27

[백준 1260] DFS와 BFS

DFS와 BFS문제설명기본적인 DFS&BFS를 구현한다.이때, 정점의 갯수(N) 간선의 갯수(M), 그리고 시작노드(V)를 입력 받는다.dfs와 bfs를 수행하고 난 노드 방문 순서를 출력시킨다.알고리즘 순서DFS의 경우 현재 방문한 노드의 인덱스를 매개변수로 전달반복문을 통해서 방문하지 않았고 연결되어 있는 노드를 재귀적으로 방문한다.BFS의 경우도 동일하고 queue에 현재 방문한 노드를 넣는다.반복문을 통해서 queue가 비어있을 때 까지 맨 앞의 노드를 끄내고, 그 노드와 인접했지만 방문하지 않은 노드를 방문한다.#include #include #include #include #include using namespace std;#define MAX 1001int graph[MAX][MAX];int..

Algorithm 2021.07.27

[프로그래머스] 큰 수 만들기(Greedy)

큰 수 만들기 문제설명 K만큼 문자열의 숫자를 지워서 가장 큰 수를 만든다. number 문자열을 통해 input이 정해진다. K개의 수를 지워서 number의 순서 변환 없이 가장 큰 수를 만들어내야한다. 첫 시도!! 처음에는 가장 작은 수 들을 지워서 만들면 된다고 생각했는데, 그런 경우에는 자리수를 고려하지 않아서 가장 큰 수가 생기지 않는다. 따라서 앞부터 수를 읽으면서 가장 큰 수를 찾아서 답을 만드는 방식으로 진행해야한다. #include #include #include #include #include #include #include using namespace std; string solution(string number, int k) { string answer=""; int remaind..

Algorithm 2021.07.27

[SQL] GROUP BY 한 결과로 UPDATE 하는 법

기존 서비스 운영 중 DB를 업데이트 해야할 때 서비스 진행중에 새로운 서비스를 도입해서 기존의 사용자에게도 적용해야할 때, 조건을 걸고 일괄 수정이 필요할 때가 있다. 이번의 경우에는 id로 group by절을 사용하여 나온 결과의 수를 세고 그 결과대로 컬럼 두개를 업데이트 시켜야 했다 1. UPDATE가 필요한 조건의 대상자 찾기 user의 id로 그룹화 하여 해당 유저가 작성한 글의 수를 센다 select count(*) as CNT, user_id from feedlist group by user_id having CNT>=7; # Feedlist라는 테이블에서 user_id로 그룹화 하고 반환되는 튜플의 수를 세는데, 7개 이상일 때만 나오도록 한다. group에 대한 조건을 세기 위해서는 w..

Back-end/SQL 2021.07.27

[GIT] GIT 커밋취소, gitIgnore

GIT에 원치않는 개인정보가 올라갔을 때 ignore파일에 파일명을 설정했는데도 실제로 그냥 올라가 버리는 경우가 있다. 따라서 이럴땐 커밋내용을 지우고 다시 gitignore 파일을 설정해서 올려서 개인정보를 지워야한다. 아래와 같은 순서로 진행하면 다시 올릴 수 있다. 1. GIT 커밋 취소 commit 내용 취소 git log #커밋 이력을 확인한다 git reset HEAD^ #이전의 커밋내용 하나를 지운다 git push -f origin (branch 이름) #커밋내용을 지우고 다시 push commit 여러개를 지우고 싶은 경우 git log #커밋 이력을 확인한다 git reset HEAD~3 #이전의 커밋내용 3개를 지운다 git push -f origin (branch 이름) #커밋내용..

GITHUB 2021.07.27