일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 동적계획법
- boj15954
- boj10942
- euclideanalgorithm
- BOJ
- DP
- boj2239
- react
- boj15998
- backtracking
- DynamicProgramming
- mysql
- DFS
- springboot
- BFS
- bruteforce
- boj_15685
- boj10775
- onTouch
- boj15683
- boj7579
- TDD
- testdb
- nestedjson
- django
- onTouchListner
- Spring
- boj_15684
- boj15654
- boj2252
- Today
- Total
목록분류 전체보기 (41)
이마닷의 블로그
이번 토이 프로젝트는 기존에 많이 썼던 AWS 대신 naver cloud platform에서 제공하는 클라우드 컴퓨팅 서비스를 사용해 서버를 구성하기로 했다. 생각보다 aws로 하던 것과 크게 차이는 없어서 나름 손쉽게 서버를 띄울 수 있었다. 1. ComputeNcloud에서는 AWS의 EC2를 비롯한 여러 서버 클라우드 컴퓨팅 서비스를 아울러서 Compute/Server라는 하나의 서비스 안에서 제공하며, 서비스를 다루는 콘솔에서도 Server 탭 하나만 존재한다. pem 파일을 사용하고, OS, cpu, 저장장치 등을 선택하는 옵션이 있다는 점도 AWS와 동일하다. AWS에서는 관계형 DBMS 기반의 DB 서버를 띄울 때는 RDS, 메인서버를 띄울 때에는 EC2라는 별도의 서비스를 사용했었지만, n..
0. 문제 https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 1. 문제분석 - 주어진 수들을 순차적으로 다르게 배열한 모든 경우의 수만 제시하면 되는 비교적 간단한 형태의 BackTracking 문제이다. 2. 주의할 점 - 꽤나 간단한 문제이기는 하지만, 꽤 많은 양을 출력해야 하므로 출력과 관련한 시간초과 문제를 조심해야 한다. - 기존에 사용하던 자료구조(스택, 큐, 그래프 등)를 구현한 라이브러리(LinkedList, ArrayL..
결론은 dto. dto 안에 또다른 dto를 넣어주면 된다. 또 별다른 방법이 있는지는 모르겠지만, 만들어 놓은 entity를 바탕으로 json 안에 쓰고 싶은 dto를 새로 만들어서 스키마에 맞게 써넣으면 된다. Django에서 nested serializer를 쓰던 것과 상당히 비슷하다. 즉, { name: "test", age: 23, nested: [ { id: 1, content: "nestedTest" }, ... , { ... } ] } 이런 스키마를 갖는 json을 날리고 싶다면, class MainDto { String name; Integer age; NestedDto nested; } class NestedDto { Long id; String content; } 이런 식의 dto를 ..
0. 문제 https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 1. 문제분석 - N개의 퀸을 체스판에 배치하는 모든 경우의 수에 대해 판단해야 하므로 Brute Force방식으로 각 좌표에 queen이 있는 상황을 다 따져보아야 한다. - N개의 queen이 있는 상황에 대해 조건 만족을 판단하기 위해 체스판을 설정한 뒤에는, 다시 또 다른 경우의 수를 판단하기 위해 체스판의 설정을 되돌려놓은 후 다른 경우의 수를 탐색해야 한다. 따라서 BackTracking 알..
0. 문제 https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 1. 문제분석 - 현재 위치에서 다른 위치로 이동하는 경우의 수가 여러가지이고, 이 때에 최단거리를 구하라는 점에서 BFS 알고리즘을 활용해야 함을 알 수 있다. 하지만 본 문제는 일반적인 BFS 문제와는 다르게 다른 위치로 이동하는 비용이 각자 다르고 그 비용이 모두 0 또는 1 이라는 점에서 기존의 BFS 알고리즘에서 더 나아간 0-1 BFS 알고리..
0. 문제 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 1. 문제분석 - 그리드 상의 수를 누적해 구하는 문제로, 좌상단에서부터 누적된 수를 토대로 그리드 상 현재 위치의 누적된 값을 구해야한다는 점에서 DynamicProgramming을 사용해야 하는 전형적인 문제이다. 2. 주의할 점 - 비교적 쉬운 문제이기는 하지만, dp[i][j] 값에 대한 정의를 분명히 하고 부분합을 구하기 위한 i, j..
SpringBoot를 활용해 TDD(Test Driven Development) 방식의 개발을 수행하기 위해서는 test 코드의 작성이 필요하다. test 코드는 보통 src/test/java 디렉터리 하에 작성되며 여러 가지 annotaion과 객체들을 사용해 이루어진다. 1. Test 클래스 생성을 위한 기본적인 annotaion - @RunWith : junit에서 단위 테스트 시 사용할 runner를 설정하는 어노테이션으로, 스프링 부트에서는 스프링에서 기본적으로 제공하는 SpringRunner를 사용하기위해 사용한다. - @SpringBootTest : 스프링부트에서 제공하는 어노테이션으로, properties(테스트에서 사용될 프로퍼티들을 key=value 형태로 입력), classes (테스..
0. 문제 https://www.acmicpc.net/problem/1728 1786번: 찾기 첫째 줄에, T 중간에 P가 몇 번 나타나는지를 나타내는 음이 아닌 정수를 출력한다. 둘째 줄에는 P가 나타나는 위치를 차례대로 공백으로 구분해 출력한다. 예컨대, T의 i~i+m-1번 문자와 P의 1~m www.acmicpc.net 1. 문제분석 - 자료구조 시간에 배운 KMP 알고리즘을 사용해야 하는 전형적인 문제이다. 2. 주의할 점 - 자료구조 책을 펼치고 KMP 알고리즘을 다시 공부하자. - 블로그에 설명이 참 잘되어 있다. bowbowbow.tistory.com/6 KMP : 문자열 검색 알고리즘 문자열 검색이 뭐지? 워드프로세서를 사용할 때 찾기 기능을 사용한적 있을 겁니다. 브라우저에서도 Ctrl..