본문 바로가기

전체 글92

[Hockey shot record] 1. 구성과 간단하게 구현 이전에 만들었던 프로젝트인 아이스하키 슛 기록 프로그램을 리액트와 Node.js를 활용해서 실사용 가능하게 구현해볼 생각이다. 그 때는 디테일한 부분은 잡지 않고 미완 상태로 남겼으므로 9월에 있을 대학아이스하키리그 이전에 완성하는 것이 목표. MVC를 지켜가며 개발을 해보긴 할 건데, 우선 리액트로 라우팅까지 하는 Views를 만들 수 있기 때문에 별다른 정리는 하지 않았다. 다만 OOP 식의 개발을 하기 위해서 컴포넌트와 라우팅을 더 세세하게 분류해보기로 했다. index.js의 useStrctMode 태그를 BrowserRouter로 바꿔주면 App.js에서 라우팅을 사용할 수 있다. 이렇게 라우팅을 구현하면 나중에 node 측에서는 백엔드 처리만 해주면 될 것 같다. 컴포넌트를 이렇게 세부 단위로.. 2022. 6. 23.
백준 9184. 신나는 함수 실행 https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net Dynamic Programming에서는 재귀를 전혀 사용하지 않는 줄 알아서 헤매었으나 동적 프로그래밍의 정의를 검색해본 후로 이해가 갔다 ㅋㅋㅋㅋ 단순히 말하면 이전에 구한 답을 재활용하면 된다. def w(a, b, c): if a 20: return w(20, 20, 20) if dp[a][b][c]: return dp[a][b][c] if a < b < c: dp[a][b][c] = w(a,.. 2022. 6. 23.
백준 24416. 알고리즘 수업 - 피보나치 수 1 http://acmicpc.net/problem/24416 24416번: 알고리즘 수업 - 피보나치 수 1 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍 www.acmicpc.net 동적 프로그래밍 문제. 처음 접해봤는데, 재귀보다 호출 횟수가 현저히 적어서 신선했다. 문제는 간단해서 주어진 수도 코드를 구현하면 된다. n = int(input()) count_1 = 0 count_2 = 0 def fib_r(n): global count_1 if n == 1 or n == 2: count_1 += 1 return 1 return fib_r(n-1) + fib_r(n-2.. 2022. 6. 22.
백준 14889. 스타트와 링크 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 개인적으로 굉장히 까다로웠던 문제. 한 팀이 이루어질 수 있는 모든 경우의 수를 구해서, 팀에 속한 i,j와 그렇지 못한 i,j를 분류해서 처리했더니 답은 맞게 나왔으나 시간 초과가 떴다. 그래서 리스트에 팀원의 인덱스를 넣는 게 아닌, 이미 고정된 크기의 배열에서 TF를 이용해 분류하는 방법을 선택해봤다. 그리고 TF를 이용해서 백트래킹을 하려니까 반복문에서 모든 값을 집어넣을 수 없어서, idx 변수를 따로 주고 .. 2022. 6. 21.