https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조�� programmers.co.kr 이중 for문을 사용하여, 인접한 원소끼리, 길이가 짧은 값이 긴 값의 앞부분에 해당하면 False를 반환하도록 하였다. 그러나 두개의 테스트 케이스에서 오답이 나온다. 그나저나 string 자료형 끼리도 if ~ in 구문이 먹히더라. 그런 경우 접두사가 아닌 경우에도 True를 반환하기 때문에 사용은 안했다. A = "111" B = "a111" pr..
programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 전역변수 cnt를 DFS() 내에서 사용할 때는 global cnt를 써 줬지만 solution() 내에서 DFS()를 정의해서 변수를 쓸 때는 nonlocal cnt 명시 def solution(numbers, target): def DFS(L, sum): if L == len(numbers): if sum == targ..
programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr 1. 정수 yellow의 약수 리스트를 만든다. 이때 중복을 방지하기 위해 (4, 6) , (6,4) 두 케이스의 경우 (4, 6)만 저장한다. 2. 약수의 곱 리스트 (a, b) 중 항상 b가 크게 저장했기 때문에, (b + 2) * 2 + a * 2 == brown인 경우 값을 값을 리턴한다. def solution(brown, yellow): # yellow의 ..
Section 7. 깊이, 넓이 우선탐색 활용 7.1. 최대점수 구하기(DFS) L을 인덱스값으로 import sys sys.stdin=open("input.txt", "r") def DFS(L, total_p, total_t): global max if total_t > m: # 제한시간 넘어가면 return if L==n: if total_p >= max: max = total_p else: DFS(L+1, total_p + a[L][0], total_t + a[L][1]) DFS(L+1, total_p, total_t ) n, m = map(int, input().split()) max = -2147000000 a = [] for _ in range(n): p, v = map(int, input()..