Home
jimin's blog
Cancel

섹션7. AOP

AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶다면? 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? AOP를 사용하지 않고 단순히 메소드마다 시간을 측정할 경우 회원가입, 회원 조회에 시간을 측정하는 기능은 핵심 관심 사항이 아니다. 시간을 측정하는 로직은 공통 관심 사항이다. 시간을 측정하는 로직과 핵...

16967번(배열 복원하기)

첫 시도 X와 Y가 1이상인 것에 집중 -> 즉, input[0][?], input[?][0]은 바뀌지 않은 원본 값이라는 뜻 원본 값을 사용해서 값이 변한 배열의 값을 유추해 낼 수 있음 그리디한 풀이로 해결 해결 import java.io.BufferedReader; import java.io.IOException; imp...

프로그래머스(등굣길)

첫 시도 누적합을 사용하여 해결 가능 내가 구할 위치의 값 = [i-1][j]까지의 경우의 수 + [i ][j-1]까지의 경우의 수 이므로 누적합을 이용해서 모든 배열에 값을 넣어주면 된다. 시간복잡도는 배열 크기만큼 이므로 O(NM)이다. 해결 class Solution { public int solution(in...

프로그래머스(정수 삼각형)

첫 시도 dp문제중 매우 유명한 정수삼각형 문제이다. triangle[0][0]을 기저사례로 두고 바텀업 방식으로 해결했다. ex) 7 + 3과 dp[1][0]의 값을 비교해 큰 수로 대체시킨다. 간단한 문제지만 구현이 생각보다 오래걸렸다. -> 분발할 것 – 해결 내용 import java.util.*; cla...

Swagger

Swagger란? 만약 내가 회사에서 API를 개발하고 있다고 가정해보자. 내가 만든 API를 다른사람들에게 공유하는 방법으로 보통 API 명세서를 사용한다. 나는 노션을 사용하여 API 명세서를 작성하였고 API가 수정될때마다 명세서를 수정하였다. 어느날 깜빡하고 명세서를 수정하지 않았다. 명세서를 보고 API를 사용하던 팀원들은 오...

프로그래머스(N으로 표현)

첫 시도 N은 8까지, number는 2^5 * 10^4이므로 O(number^2)은 불가능 1은 N/N일 수 밖에 없으므로 dp[1] = 2 일 수 밖에 없다. -> 이것을 이용해서 1부터 32000까지 최소값을 구해보려고 시도 -> 이렇게는 못 구함 -> 실패 해결 1부터 32000까지 N 개수의 최소값을 구하...

11052번(카드 구매하기)

첫 시도 N이 1000이므로 O(N^2)까지는 가능 카드 N개를 구매할 때 금액이 클수록 좋다. 해결 N이 3이라고 했을 때 결과가 3이 되는 계산식은 3 = 3, 3 = 2 + 1, 3 = 1 + 2, 3 = 1 + 1 + 1이고 각 계산식 마다 소비될 금액의 최대값을 N에 저장해주면서 증가시키면 된다. ...

RestDocs

RestDocs란? 만약 내가 회사에서 API를 개발하고 있다고 가정해보자. 내가 만든 API를 다른사람들에게 공유하는 방법으로 보통 API 명세서를 사용한다. 나는 노션을 사용하여 API 명세서를 작성하였고 API가 수정될때마다 명세서를 수정하였다. 어느날 깜빡하고 명세서를 수정하지 않았다. 명세서를 보고 API를 사용하던 팀원들은 ...

11727번(2xn타일링2)

첫 시도 11726번(2xn 타일링)에서 업그레이드 된 문제이다. 원래 사용할 수 있는 타일은 2x1, 1x2 뿐이었는데 2x2 타일이 추가되면서 경우의 수가 추가되었다. 기존 2칸을 차지했던 곳에 2x2 타일이 들어갈 수 있기 때문에 경우의 수가 2배가 된다. 따라서 dp[i-2]*2 + dp[i-1]로 해결할 수 있다. 해결 ...

11726번(2xn 타일링)

첫 시도 N이 1000 = 10^3 dp를 사용하면 O(N)으로 해결 가능 N이 커져도 결국 어떤 패턴이 반복됨 dp[i] = dp[i-2] + dp[i-1]; 해결 10007으로 나눈 나머지를 dp배열에 저장했어야했는데 조건을 제대로 확인하지 않아 한참 헤맸다. 조건을 잘 확인하자 import java.io.Buf...