[그라운드룰] 코드리뷰 가이드
·
programming/환경설정 및 팁
https://github.com/raccoonyy/code_review_guideline/blob/master/text/thoughbot_code_review.md code_review_guideline/text/thoughbot_code_review.md at master · raccoonyy/code_review_guidelinecode review guidelines. Contribute to raccoonyy/code_review_guideline development by creating an account on GitHub.github.com 협업할 때 그라운드룰을 정해두면 좋아서 나는 그라운드룰을 항상 만든다.그 중 항상 나오는 것이 코드 리뷰해주기다.나뿐만 아니라 다른 사람들도 그라운드룰..
[C++] 백준 1041번 : 주사위
·
problem solving/백준
🔗 문제https://www.acmicpc.net/problem/1041  ✏️ 풀이 소요시간100분 (고민 40 + 구현과 최적화) 알고리즘수학(도형의 특성), 조합 풀이눈에 보이는 주사위의 면 개수를 이용하자.  3면 : 상단의 꼭지점 4개2면 : 모서리에서 위, 아래의 꼭지점 2개를 뺀 N-2의 길이만큼 상단과 옆면에 각각 4개씩 존재 (N-2)*8 + 최하단의 꼭지점 4개1면 : 바닥에 깔린 면을 제외한 모든 면의 개수인 5에는 모서리를 제외한 (N-2)(N-2)개 (총 (N-2)(N-2)*5개) + 최하단의 모서리  (N-2)*4     (1)주사위 평면도를 고려해서 각 면이 만날 수 있을 때만 계산해야 한다.아래는 인덱스가 0으로 시작했을 때의 공식이다.2면 계산 시 i, j의 합에서 i +..
[C++] 백준 2179번 : 비슷한 단어
·
problem solving/백준
🔗 문제https://www.acmicpc.net/problem/2179  ✏️ 풀이입력을 N번 받는다. 입력받은 문자열이 중복이면 저장하지 않고 무시한다.std::set check 변수로 중복 확인을 하며, 오직 중복 확인만을 위해 사용한다.입력받은 문자T를 앞에서 하나씩 떼어서 부분 문자열을 만든 후, 현재 입력받은 순서를 저장한다.abc -> {a, ab, abc}ab -> {a, ab}map에는 {a, {0, 1}}, {ab, {0, 1}}, {abc, {0}} 이렇게 저장된다.부분 문자열을 만들고 map에 저장하는 과정에서 가장 긴 prefix의 길이를 갱신한다. (max_prefix) map의 key-value key : prefixvalue : 해당 prefix를 만들 수 있는 문자열T의 ..
[C++] 백준 22255번 : 호석사우루스
·
problem solving/백준
🔗 문제https://www.acmicpc.net/problem/22255 ✏️ 풀이 완전탐색으로 풀기에는 너무 많은 경우의 수가 생긴다는 것을 알 수 있다.이 문제는 다익스트라 문제다.DP[i][j]를 시작점부터 (i, j)에 도달할때까지 받은 총 충돌량의 최소값으로 정의하고, 기존 DP보다 값이 작을 때만 그 방향으로 탐색을 해주게 되면 경우의 수가 가지치기 되므로 시간 안에 문제를 풀 수 있다. 문제 포인트 #매 이동 시 마다 움직일 수 있는 방향이 다르다.이동 횟수(k)가 갈 수 있는 방향을 결정한다.3k, 3k+1, 3k+2는 k%3으로 바로 바꿔 사용할 수 있다.k%3==0 : 상하좌우k%3==1 : 상하좌우k%3==2 : 상하좌우상하좌우를 변수로 선언해두고 range를 설정해주어서 이동 가..
[C++] 백준 1987번 : 알파벳
·
problem solving/백준
https://www.acmicpc.net/problem/1987 1987번: 알파벳문제 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한www.acmicpc.netDFS와 되추적 기법(1,1)에서 시작되는 노드를 따라 갔던 정점 빼고 가장 많은 정점의 수를 출력해야한다. 즉, (1,1)에서 시작하여 모든 노드를 방문하며 - > DFS / BFS모든 경우의 수를 생각해야한다 -> 되추적 기법 모든 경우의 수를 생각해야하는 거면 DP도 되지 않나라는 생각을 했는데2차원 배열이 사용되는 그런 길? 타일 같은 공간이 필요하면 되추적으로 하는 것 같다(..) 되추..