본문 바로가기

코딩 테스트291

배열 만들기 2 첫번째 코드 해당 범위의 수에서 0과 5으로만 구성되어 있으면, 정답에 포함한다.만약 정답 리스트가 비어있다면 -1을 반환하면 된다! def solution(l, r):     answer = []          number = ['0', '5']          for i in range(l, r+1):         now = str(i)         now_in = True         for j in now:             if j not in number:                 now_in = False                 break         if now_in == True:             answer.append(i)          if answer:.. 2024. 9. 6.
092 고층 빌딩 첫번째 코드 점화식 세우는게 너무 어려운 문제....코드는 책을 참고했는데..내가 이해를 하고 쓴건지 모르고 일단 쓴건지... import sys input = sys.stdin.readline mod = 1000000007 n, l, r = map(int, input().split()) dp= [[[0 for _ in range(101)] for _ in range(101)] for _ in range(101)] dp[1][1][1] = 1 for i in range(2, n+1):     for j in range(1, l+1):         for k in range(1, r+1):             dp[i][j][k] = (dp[i-1][j][k] * (i-2) + (dp[i-1][j][k.. 2024. 9. 5.
091 가장 큰 정사각형 첫번째 코드 dp를 대표하는 문제 종류 중 하나라고 한다.2차원 matrix의 경우에도 점화식에 유의하여 작성하며 방법에 대해 공부하자! 코드는 책을 참고하였다. import sys input = sys.stdin.readline n, m = map(int, input().split()) dp = [[0 for _ in range(1001)] for _ in range(1001)] max = 0 for i in range(n):     numbers = list(input())     for j in range(m):         dp[i][j] = int(numbers[j])         if dp[i][j] == 1 and j > 0 and i > 0:             dp[i][j] = m.. 2024. 9. 5.
090 LCS 2 첫번째 코드 우울해하지 말고!!점화식을 만드는 방법이 이렇게 있구나~ 하면서 배워가기! 코드는 책을 참고했다! import sys input = sys.stdin.readline sys.setrecursionlimit(10000) a = list(input()) a.pop() b = list(input()) b.pop() dp = [[0 for _ in range(len(b) + 1)] for _ in range(len(a) + 1)] path = [] for i in range(1, len(a) + 1):     for j in range(1, len(b) + 1):         if a[i-1] == b[j-1]:             dp[i][j] = dp[i-1][j-1] + 1        .. 2024. 9. 3.
089 연속합 2 첫번쨰 코드 오른쪽부터 시작한 합과 왼쪽부터 시작한 합을 모두 고려해야 하는 문제이다.나도 처음에 단순하게 점화식을 작성했는데, 책에서 명확하게 이렇게 세우면 안된다는 예시였다 ㅎㅎ; 하여 점화식 아이디어와 코드는 책을 참고하였다. import sys input = sys.stdin.readline n = int(input()) a = list(map(int, input().split())) left = [0] * n left[0] = a[0] result = left[0] for i in range(1, n):     left = max(a[i], left[i-1] + a[i])     result = max(result, left[i]) right = [0] * n right[n-1] = a[n-1].. 2024. 9. 3.
[1차] 비밀지도 첫번째 코드 그리디 알고리즘을 이용하여 이진법으로 된 수를 구할 수 있다.원래는 arr1과 arr2를 이용하여 각각의 공백과 #으로 된 배열을 구한 뒤에 통합하려 했으나,계산량이 불필요하게 너무  많아질 것 같아 한번에 계산하였다. def solution(n, arr1, arr2):     answer = []          for i in range(n):         map = ''         for j in range(n-1, -1, -1):             if arr1[i] // (2**j) > 0 or arr2[i] // (2**j) > 0:                 map += '#'                 arr1[i] =  arr1[i] % (2**j)        .. 2024. 9. 2.
728x90