본문 바로가기

분류 전체보기657

[spock] Kotlin테스트 ReadOnlyPropertyException error @SpringBootTestclass MemberSpeckTest extends Specification { @Autowired MemberService memberService def "getProfileByMemberId() Test"() { given: def profileService = Mock(ProfileService.class) profileService.getProfileByMemberId(0) >> new ProfileResponse(name: "햄과함께") // error // ... }}Colored by Color Scriptercs 위와 같이 groovy 언어로 테스트 코드를 짰다. data class ProfileResponse( val name: String = "", val.. 2019. 3. 5.
[CodeJam][2017][Round 1B] C. Pony Express 문제 : https://code.google.com/codejam/contest/8294486/dashboard#s=p2&a=1 참고 : http://kmjp.hatenablog.jp/entry/2017/04/24/1000 위 포스팅을 보고 풀었다. 입력N : 말을 가진 도시의 수Q : 흥미있어하는 정착지 개수N개의 Ei(i번째 말로 갈 수 있는 최대 거리. kilometers), Si(속도. k/s)NxN의 Dij(i -> j 거리)Q개의 Uk(시작 위치), Vk(종료 위치) 출력Q개의 Uk -> Vk로 가는 최소 시간. 플로이드 워셜 알고리즘을 2번 돌려서 풀었다.먼저 입력받은 D 배열(거리)로 i -> j로 가는 최단 거리를 플로이드를 돌려서 구한다. (O(N^3))D를 구했으면 D 배열을 탐색하면.. 2019. 3. 4.
[leetcode][1004] Max Consecutive Ones III 문제 : https://leetcode.com/problems/max-consecutive-ones-iii/ 투 포인터로 풀었다.큐를 하나 만들어서 0인 경우 0일 때의 인덱스를 큐에 저장한다.그리고 start, end 인덱스 2개를 저장한다. A 배열을 앞에서 탐색하면서 탐색 중인 인덱스가 end인덱스가 되는 정답이 될 수 있는 가능한 start 인덱스를 갱신해나간다.start인덱스는 0부터 시작되며 갱신되는 경우는 [start, end] 범위에 0의 개수(0 인덱스를 저장하는 큐의 size)가 K개를 초과하는 경우이다.start는 큐의 가장 앞에 있는 0의 인덱스 + 1이 된다.A 배열을 모두 탐색하면서 가능한 [start, end] 범위를 구하고 해당 범위의 길이 중 최대 값이 정답이 된다.시간복잡.. 2019. 3. 4.
[CodeJam][2017][Round 1B] B. Stable Neigh-bors 문제 : https://code.google.com/codejam/contest/8294486/dashboard#s=p1&a=1 우선은 R, Y, B만 있는 경우를 생각하자.이 때는 두 번에 나눠서 정답을 만들 수 있다.1회차에 R, Y, B를 순서대로 나열한다. (R+Y+B / 2의 오름차순 한 개수만큼만 넣는다. - 반)예를 들어, R 3개, Y 2개, B 1개라고 하면 먼저 3개를 나열한다. ex) RRR그리고 2회차에 만든 정답 문자열 사이사이에 알파벳을 다시 차례대로 넣는다. ex) RYRYRB알파벳 R, Y, B가 (R+Y+B)/2 보다 크다면 2회차 때 연속되게 나올 수 밖에 없기 때문에 정답이 불가능하다. -> IMPOSSIBLE 주의할 점은 R, Y, B를 순서대로 나열하면 안된다는 것이.. 2019. 3. 2.
[leetcode][997] Find the Town Judge 문제 : https://leetcode.com/problems/find-the-town-judge/ 다른 사람한테 믿음을 받은 횟수(?)를 저장한는 배열(cnt라고 하자)을 하나 만든다.trust 배열을 탐색하며 해당 배열을 갱신한다.조건에서 판사는 아무도 믿지 않으므로 다른 사람을 믿는다고 한 사람의 횟수는 -N으로 초기화한다. (절대 정답이 될 수 없게)trust 배열을 탐색하며 cnt 배열을 갱신했으면 cnt 배열을 탐색하면서 요소 값이 N-1인(자기를 제외한 모든 사람의 수) 인덱스가 정답이 될 수 있다.만약 가능한 인덱스가 2번 이상 나오면 정답이 될 수 있는 경우는 유일하다고 했으므로 -1을 반환하고 1번 나오면 그 사람 번호를 반환한다. 시간 복잡도는 O(|trust| + N). 소스코드 :.. 2019. 3. 2.
[190228] 뮤지컬 그날들 보고 왔뜨아어제 밤부터 갑자기 몸이 안좋더니 오늘 코감기 완벽하게 걸려버려서 사실 가기 귀찮았다.오늘 8시 뮤지컬이었는데 편도로 1시간 20분쯤 걸려서 고민을 했지만.. 집에 있어봤자 몸관리 안할거 같아서 천천히 나가서 보러갔다.결론은 대성공. 으엉 벌써 또 보고 싶다.친구한테 추천받아서 작년에 예매해두고 잊고 있던건데 알고보니 유명한 뮤지컬이었다. 대식님이던가 유도 특채 경호원 분이랑 하나양(보통 님 붙여서 쓰는데 이름이 '하나'여서 님 붙이면 하나님 되니까.. 이번엔 '양'을 붙이기로)의 캐미가 나는 젤로 재밌었당. 주연보다는 조연분들을 더 좋아하는 경향이 여기서도 발현된걸까.그것도 그렇고 하나양 같은 캐릭터(예를 들어, 위키드의 글린다)를 워낙 좋아해서 그런것같기도 하다. 귀여웡.계속 1등하니까 주.. 2019. 3. 1.