목록전체 글 (601)
sm 기술 블로그
T = int(input()) result = [] arr = [0] * 1001 for _ in range(T): N = int(input()) arr[1], arr[2], arr[3] = 1, 1, 1 for i in range(4,N+1): arr[i] = arr[i-2] + arr[i-3] result.append(arr[N]) print("\n".join(map(str,result))) 문제요약 작은삼각형이 나선형으로 커지는데 입력값에 따른 삼각형의 개수를 구하시오. 설명 매우 쉬운문제이다. P(N)에 따른 개수는 다음과 같으며, 3까지는 1로 그 이후에는 P(N) - 2 + P(N) - 3 의 피보나치형태를 띄운다. 따라서 arr[i] = arr[i-2] + arr[i-3] 이 로직을 통해 쉽..
문제요약 입력된 값을 자릿수로 하여 이진수에서 00 이 붙어 있거나 아예 없는 모든 경우의 수에 15746을 나눈 나머지를 구하라. 설명 먼저 이 문제를 이해하고 규칙을 찾는건 크게 어렵지 않다. 다음과 같이 피보나치수열을 이루고 있음을 알고 있다. 피보나치 하면 먼저 재귀함수가 떠 오를 것이다. 하지만 재귀함수를 이용하면, 다음과 같이 메모리 초과 혹은 런타임 에러가 발생한다. RecursionError는 재귀를 너무 많이 하게 되면 발생하는 에러이다. 따라서 이 문제는 재귀함수로 푸는것은 불가능하다. 그러면 반복문을 사용해야한다. import java.util.*; import java.io.*; class Main { public static void main(String[] args) { Scan..
문제요약 입력된 값을 자릿수로 하여 이진수에서 00 이 붙어 있거나 아예 없는 모든 경우의 수에 15746을 나눈 나머지를 구하라. 설명 먼저 이 문제를 이해하고 규칙을 찾는건 크게 어렵지 않다. 다음과 같이 피보나치수열을 이루고 있음을 알고 있다. 피보나치 하면 먼저 재귀함수가 떠 오를 것이다. 동적프로그래밍 파트에다가 숫자가 매우 크므로 동적을 적용해 보았다. N = int(input()) memo = [0]*500 def Tile(N): if N == 1 or N == 2: memo[N] = N return memo[N] memo[N] = Tile(N-1)+Tile(N-2) return memo[N] print(Tile(N)%15746) 결과는 실패였다. 다음과 같이 메모리 초과 혹은 런타임 에러가..
HttpSession 로그인을 구현하기 위해 사용하는 메서드(로그인을 유지하기 위한 메서드) 공식 문서를 보면 Provides a way to identify a user across more than one page request or visit to a Web site and to store information about that user 둘 이상의 페이지 요청에서 사용자를 식별하거나, 웹 사이트를 방문하고 해당 사용자에 대한 정보를 저장하는 방법을 제공한다. The servlet container uses this interface to create a session between an HTTP client and an HTTP server. The session persists for a spe..