전체 글
-
[Nest.js] 1. Modules 톺아보기서버/Nest.js 2020. 12. 29. 08:34
@Module 데코레이터 데코레이터를 통해 해당 코드가 모듈임을 명시하고 Nest에게 조직화된 구조를 제공한다. @Module 데코레이터는 하나의 객체를 가지는데 다음과 같은 속성을 지닌다. providers : Nest injector에 의해 인스턴스화 되는 provider를 의미한다. 해당 모듈을 통해 공유되는 비즈니스 로직이라고 생각하면 좋다. controllers : 비즈니스 로직과 연결시켜주는 라우팅 객체라고 이해하는 것이 좋다. imports : 해당 모듈에서 필요한 export된 provider 리스트를 의미한다. exports : 다른 모듈에서 사용하기 위해 export하는 provider를 의미한다. 즉 provider를 중심으로 이해하는 것이 좋은데, 해당 모듈에서 어떠한 비즈니스 로직..
-
우아한 테크캠프를 지원해보면서일상 2020. 6. 20. 17:25
너무 늦게 쓰는 이야기인 것 같지만, 지금이라도 쓰지 않으면 그 때 당시 내가 먹었던 마음가짐을 잊을까봐 기록으로 남긴다. 우연한 계기로 우아한 테크 캠프를 알게되었고, 지원하여 1차 코딩 테스트를 보았었다. 문제는 총 4문제였고, 이 중 4번째 문제인 "추 매달기" 문제를 제외하곤 나머지는 쉽게 해결할 수 있었다. 앞선 세 문제가 너무나도 쉬웠기 때문에 탈락하는 게 아닐까 하는 생각이 들었지만, 다행히도 1차는 합격하였고, 2차 테스트를 준비했다. 결과는 당연하게도 탈락이었다. 과제 형식의 테스트는 처음 접해본 것이었는데, 정말 정말 어려웠다. 자바스크립트 언어에 대해서 좀 안다고 생각했었는데, 생각보다 너무나도 모르기도 했고, 전체적인 구조를 파악하는 게 정말로 힘들었다. 문제를 풀면서 들었던 생각은..
-
BOJ 2178 DFS? BFS? DP?알고리즘 문제풀이/Java 2020. 5. 4. 23:27
문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력..
-
BOJ 6064 나머지 정리알고리즘 문제풀이/Java 2020. 5. 1. 13:38
문제 최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 해를 표현한 것을 이라고 하자. 만일 x < M 이면 x' = x + 1이고, 그렇지 않으면 x' = 1이다. 같은 방식으로 만일 y < N이면 y' = y + 1이고, 그렇지 않으면 y' = 1이다. 은 그들 달력의 마지막 해로서, 이 해에 세상의 종말이 도래한다는 예언이 전해 온다. 예를 들어, M = 1..
-
BOJ 10971 오랜만에 풀어보는 순회 문제알고리즘 문제풀이/Java 2020. 5. 1. 01:19
문제 https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j로 가기 위한 비용을 나타낸다. 항상 순회할 수 있는 경우만 입력으로 주어진다. www.acmicpc.net 해설 내가 처음 문제를 해결하기 위한 방법은 배열을 이용하는 것이었다. 0번 배열에 번호를 저장하고, 이후 해당 번호를 인덱스로 하는 배열에 다른 번호를 저장하는 방식으로 처리하면 문제를 해결할 수 있을 것 같았다. 34번째 줄을 추가하기 전까지는 문제를 계속 틀렸는데,..
-
BOJ 2225 합분해알고리즘 문제풀이/Java 2020. 4. 18. 16:51
문제 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오. 덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다. 입력 첫째 줄에 두 정수 N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)가 주어진다. 출력 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. 예제 입력 1 복사 20 2 예제 출력 1 복사 21 해설 이 문제의 경우, 초반에 0 또한 수를 만드는 경우에 속하는 지 모르고, 삽질을 조금 했었다. 하지만 점화식으로 식을 이미 세워놨기 때문에 쉽게 문제를 찾아내 수정할 수 있었다. 먼저 이 문제의 점화식을 정리하면 다음과 같다. D[n][k] = k개의 수..
-
약 2주간 알고리즘 집중의 결과!!일상 2020. 4. 18. 15:13
2주간 백준 문제를 풀었다. 그 과정에서 예전에 사 놓기만 했던 종만북도 다시 보고, 강의도 신청해서 보는 중이다. 처음엔 브론즈3로 책정되서, 나는 언제쯤 실버를 달까.. 실버3 정도 되는 문제를 만나면, 정말 어렵다라고 생각을 했었다. 하지만 꾸준히 고민하고, 계속 시간을 투자하니 확실히 문제에 접근하는 사고가 느는 게 느껴져서 정말 기분이 좋다. 실버2라는 게 그렇게 높은 등급은 아니지만, 2주만에 내가 이 정도까지 올 줄은 상상도 못했기 때문에 글로 남겨두고 싶었다. 중앙대학교에선 골드만 돼도 100위권 안이던데(물론 solved.ac에 등록한 사람 중에서!!), 이번달 안으로 골드를 찍는 게 목표이다!! 골드를 달면 또 포스팅해야지~