월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
변수가 연동되나요?
안녕하세요 선생님항상 강의 잘 듣고 있습니다.a변수를 정의하고 나서b=a로 b변수를 정의했는데,b변수를 바꾸니 b변수만 변하는게 아니라 a변수까지 변합니다.왜 b변수와 a변수가 독립적인게 아니라 서로 연결되어있을까요?그리고, 연결되지 않게 b변수를 정의하려면 어떻게 해야 할까요? 이게 제 코드입니다.코드a = [1, 2, 3] b = a b.pop(0) print(a)출력 결과[2, 3] 왜 b만 바꿔도 a까지 바뀌는건가요..?감사합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
자동채점 에러 내용
처리되지 않은 예외: System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 위치: Judge.Program.Main(String[] args) 이런 에러로 자꾸 자동채점이 안되는데 이유가 뭔가요?강의코드로 해도 안되는거 보니 코드문제는 아닌거 같습니다무엇보다 기존에 잘 돌아가던것도 코드들도 지금은 안되네요;;
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
부분집합구할때 아래와 같이 구해도 괜찮을까요
arr = [] def DFS(v): if v>3: return else: arr.append(v) DFS(v+1) print(arr) arr.remove(v) DFS(v+1) DFS(1)[1, 2, 3] [1, 2] [1, 3] [1] [2, 3] [2] [3] 위와같이 풀면 중위순회라고 봐야할지 궁금합니다
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
질문입니다! DFS(i) 를 DFS(v+1)로 해도 되지 않나요?
DFS(i) 를 DFS(v+1)로 해도 되지 않나요? 실행시켜보니 답이 다르게 나오는데 i도 1부터 시작해서 5까지 가고 v+1을 해도 1부터 시작해서 5에서 종료되는데 왜 안되는지 이해가 안 됩니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
두리스트 합치기 수업 질문
n=int(input()) a=list(map(int, input().split())) m=int(input()) b=list(map(int, input().split())) res=list(a+b) res.sort() print(res) for i in range(len(res)): print(res[i], end=' ')이런식으로 문제를 풀어도 문제가 없을까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
break 랑 return 이랑 차이가 무엇인가요?
이전에는 종료를 할때 break 를 쓰셨는데함수에서 하실 때는 return 으로 쓰시는 이유가 무엇인가요?답변주시면 감사하겠습니다!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 코드 질문있습니다!
제가 호기심에 첫 번째 줄에 sort 정렬을 안 해보고 풀어보려고 코드를 짰는데 1~4 번 케이스까지는 맞지만 5번케이스에서 인덱스 에러가 발생합니다. 혹시 왜 이러는지 알 수 있을까요?N , word = map(int, input().split()) List = list(map(int,input().split())) cnt = 0 m , n = 0 , N-1 for _ in range(N//2): if m > n : break elif m == n: if List[m] <= word: cnt += 1 else: if List[m] <= word: cnt += 1 if List[n] <= word: #에러 발생하는 위치. cnt += 1 m += 1 n -= 1 print(cnt)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이중for문 과 시간복잡도에 대한 질문
안녕하세요 강사님 강의 잘 듣고있습니다 감사합니다 이전 강의 “ 수들의 합 ” 에서 이중 for 문을 사용하면 시간 복잡도가 O(N²)이 된다고 하셔서이번 문제도 그것을 염두해 이중for문을 사용하지 않으려고 풀어보았습니다. 강의를 보고 질문드립니다 이 문제가 시간복잡도를 따지지않는 문제라서 이중 for문을 사용해도 괜찮은건가요?언제 시간복잡도를 따져야하나요?제가 작성한 코드는 시간복잡도가 어떻게 되나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 질문있습니다!
안녕하세요! 제 코드 오류 해결을 못해서 강의까지 듣고 이해했습니다. 선생님께서 하신 코드는 이해했는데 하지만 제가 짠 코드가 왜 틀리는지 잘 이해가 안 가서 질문드립니다! N, M = map(int,input().split()) List = list(map(int,input().split())) cnt = 0 x_cnt = 0 while(cnt < N ): Sum = 0 for i in range(cnt,N): Sum += List[i] # index 오류! if Sum == M : x_cnt += 1 break elif Sum > M : break cnt += 1 print(x_cnt)in 1, 2 ,3 까지는 맞지만 4, 5에서 값이 커지면sum += List[ i ] 부분에서 IndexError: list index out of range 나옵니다.왜 인덱스 범위가 벗어나는지 이유를 모르겠습니당.. 선생님 방금 추가로 얻은 정보인데요! 제가 선생님과 비슷한 방식으로 풀었다가 그것도 똑같이 인덱스 범위 오류가 나서 아예 선생님 코드를 복붙을 했는데도 인덱스 범위 오류가 나는 거에요!!이거는 제 파이썬 버전이나 컴퓨터 설정에서 문제가 있는 걸까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션2 k번째 수 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. import sys sys.stdin=open("input.txt", "rt") T=int(input()) for t in range(T): n, s, e, k = map(int, input().split()) a=list(map(int, input().split())) a=a[s-1:e].sort() print("#%d %d"%(t+1,a[k-1])) 저는 처음에 코드를 이런식으로 작성을 했었는데 TypeError: 'NoneType' object is not subscriptable 에러가 뜨게 됩니다. 검색해서보니 none인 경우에 index를 사용하려고 할때 다음과 같은 에러가 생긴다는 것을 알게 되었습니다. sort()함수를 같이 써주고 a를 출력해보면 none이 뜨게 되는데 왜 none이 뜨는지 그 이유를 모르겠습니다. a=a[s-1:e].sort() a=a[s-1:e] a.sort() 이렇게 쓰면 저는 같은 결과가 나올 것이라고 생각했는데 위에 코드에서 a를 찍어보면 none이 출력됩니다. 그 이유가 알고 싶습니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
바둑이 승차문제
안녕하세요! 바둑이 승차 문제 풀이 영상을 보고 다른 풀이로도 한번 풀어봤는데 예제 입출력대로는 제대로 나오는데 혹시 제 풀이가 맞는지 질문하고자 코드를 올립니다.C,N=map(int,input().split()) weights=[] result=[] for _ in range(N): weights.append(int(input())) def dfs(L,sum): if sum>C: return if L==N: result.append(sum) else: dfs(L+1,sum+weights[L]) dfs(L+1,sum) dfs(0,0) print(max(result))
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
휴가 DFS 문제 질문
def DFS(L, sum): global res if L == n+1: if res < sum: res = sum else: # 상담을 한다고 했을떄 L번쨰 상담을 한다고 했을떄 if L + T[L] <= n+1: DFS(T[L]+L, sum + P[L]) DFS(L+1, sum) if __name__ == "__main__": n = int(input()) T = list() P = list() for i in range(n): a, b = map(int, input().split()) T.append(a) P.append(b) res = -2147000000 T.insert(0, 0) P.insert(0, 0) DFS(1, 0) print(res) 제가 구현할떄 else 문에 if L + T[L] <= n+1: 이라는 코드를 작성하지 않아도 정상적으로 코드가 실행했습니다. 이 if 문 같은 경우에는 위의 else 문에서 다 해결해주는 부분이 아닌가 싶어서 저는 작성하지 않았습니다. 혹시 if L != n+1 하고 if L + T[L] <= n+1: 하고 다른게 있을까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션 7-14 안전영역에서 print가 출력되지 않습니다.
안녕하세요 강사님! 저는 채점기 관련 오류로 프로그램을 직접 실행하고 input과 output을 비교하는 것을 통해 채점을 하고 있습니다.그런데 섹션 7-14 안전영역을 DFS로 푼 문제에서 재귀가 1000이 넘는 input4, input5를 실행했을 때 print 결과가 출력되지 않습니다. setrecursionlimit도 제대로 설정했는데 이렇습니다. 아무 에러메세지 없이 종료됩니다디버깅으로 확인해보니 첫루프에서 재귀가 계속 진행되다가 어느순간 프로그램이 자동으로 종료되는 것 같습니다. 강사님이 작성하신 코드로 테스트해봐도 똑같은 현상이 발생합니다.혹시 몰라 제가 작성한 코드와 출력결과도 첨부드립니다 print 안되는 문제를 고치려다보니 강사님 코드와 많이 비슷해졌습니다# 14. 안전영역 (DFS) import sys sys.stdin=open("inflearn/section_7/input.txt", "r") sys.setrecursionlimit(100000) input = sys.stdin.readline def DFS(x, y, h): chk[x][y] = 1 for i in range(4): xx = x + dx[i] yy = y + dy[i] if 0<=xx<N and 0<=yy<N and board[xx][yy] > h and chk[xx][yy] == 0: DFS(xx, yy, h) if __name__=="__main__": N = int(input()) board = [list(map(int, input().split())) for _ in range(N)] max_cnt = 0 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] for height in range(1, 100): cnt = 0 chk = [[0 for _ in range(N)] for _ in range(N)] for x in range(N): for y in range(N): if chk[x][y] == 0 and board[x][y] > height: DFS(x, y, height) cnt += 1 max_cnt = max(max_cnt, cnt) if cnt == 0: break print(max_cnt)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션3. 두 리스트 합치기 질문입니다
안녕하세요 강사님섹션3의 4번째 문제 (두 리스트 합치기) 를 듣다가 궁금한게 생겨서 문의 드립니다 강사님 코드는 while p1<n and p2<m: 조건을 걸고 while문 밖에서두 포인트 지점 p1, p2에 조건을 추가해 마지막처리를 하셨는데while p1 < n and p2 < m: if a[p1] <= b[p2]: c.append(a[p1]) p1 += 1 else: c.append(b[p2]) p2 += 1if p1 < n: c = c + a[p1:]elif p2 < m: c = c + b[p2:]for x in c: print(c, end=' ')저는 이렇게 while문을 무한루프로 만들고 while문 안에서 break 조건을 걸어서 처리했는데 이렇게 하면 안좋거나 잘못된 코드인가요?while True: if a[p1] <= b[p2]: c.append(a[p1]) p1 += 1 if p1 == n: c.extend(b[p2:]) break else: c.append(b[p2]) p2 += 1 if p2 == m: c.extend(a[p1:]) breakprint(c)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
조합 구하기 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.def DFS(L, s): global cnt if L == m: for j in range(L): print(res[j], end =' ') cnt += 1 print() else: for i in range(s, n+1): res[L] = i # 교수님꼐서는 i+1로 하셨고 저는 s+i로 했습니다. DFS(L + 1, s + i) if __name__ == "__main__": n, m = map(int, input().split()) res = [0] * (n+1) cnt = 0 # DFS(L, s)라 하면 s는 가지니까 즉 처음에는 1, 2, 3, 4돌고 그다음은 2, 3, 4돌고 이런식으로 해야 # 순서를 고려안할 수 있다. DFS(0, 1) print(cnt) 안녕하세요 교수님! 코드를 작성하다가 질문이 있어서 질문 드립니다. 제가 교수님의 강의를 먼저 듣고 코드 구현 보기전에 저렇게 코드를 작성했습니다. 그러나 다른 코드는 다 같은데 한가지 다른 부분이있었습니다. else 문에서 교수님께서는 DFS(L+1, i+1)으로 하셨고 저는 어짜피 s는 1부터 시작하고 i도 똑같이 1부터 n+1까지 증가하기에 s+i라고 생각하여 코드를 작성했습니다. 이렇게 해도 혹시 문제는 없는지 i+1로 해야만 한다면 왜 그런지 이유를 알고 싶습니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
곳감과 사과나무 질문입니다
선생님 !!곳감과 사과나무 문제 합에 대한 부분인 if i<n//2부분에서 i가 2일때는 else부분에 속해지게 되는데 왜 if부분에서의 계산이 이루어지는지 궁금합니다!!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
8. 순열구하기 (DFS) 질문입니다.
def DFS(L): global cnt # 종료 => 즉 출력 if L == m: # res에 m개를 뽑은 수를 저장했으므로 출력한다. for j in range(m): print(res[j], end=' ') cnt += 1 print() else: # 가지 뻗기 for i in range(1, n + 1): if ch[i] == 0: ch[i] = 1 res[L] = i DFS(L + 1) ch[i] = 0 if __name__ == "__main__": n, m = map(int, input().split()) # 순열이기때문에 겹치지않게 하기 위해 0과 1로 구분. ch = [0] * (n + 1) res = [0] * m cnt = 0 DFS(0) print(cnt) 궁금한 점이 있어 질문드립니다. 교수님이 짜주신 코드를 보면 for j in range(L)이라고 나와있습니다. 저는 처음에 m번을 뽑아야해서 인덱스가 m개만 필요하므로 저는 m번만큼 반복문이 돌아 출력할 수 있도록 코드를 짰는데 L이 아닌 m으로 짜도 코드가 정상 작동했습니다. 이렇게 짜도 혹시 괜찮은게 맞는지 여부가 궁금합니다.또한 cnt+=1 을 for j문 안에 넣었을 경우에 12가 출력되었습니다. 왜그런지 알꺼같으나 1 2 1 3 2 1 2 3 3 1 3 2 이거를 모두 한개씩 for문 돌면서 받아들여 12라고 출력되는거 같기는한데 이게 맞는건가요?그리고 마지막으로 print()의 위치가 교수님의 코드에는 print() 다음 cnt+= 1 이렇게 되있는데 저는 순서를 cnt+=1 print()이렇게 했는데 답에는 문제가 없었습니다. 혹시 순서를 변경해도 코드 실행 속도에 영향을 미치지 않는지 여부가 궁금합니다.항상 좋은강의 감사합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 이해가 잘 안되요
안녕하세요 선생님 문제가 잘 이해되질 않아 이렇게 질문을 남깁니다.[2:50] 모든 말들의 거리는 5보다 크거나 같아야 한다.가장 가까운 두 말의 거리가 최대로 된다는 말이 무엇인가요? 예를들어 3마리의 말이 1, 4, 9 or 1, 4, 8이 최대라고 생각을 하는데 맞나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
마지막 else 들여쓰기가 헷갈립니다.
if 와 else 가 같은 선상에 있으니 정답이 5가 나오는데break가 걸리면 else:가 실행되지 못하도록 하기 위함인가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
tsum 관련해서 질문드립니다
시간초과 (4, 5번) 해결을 위해서 tsum 조건을 추가하셨는데, 이 경우 worst case에서는 시간초과가 발생할수밖에 없지 않나요? 혹시 완전탐색(DFS) 외 다른 방법으로 찾아봐야 하지 않나요?