월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
'정렬' 관련된 문제는 강의의 어느 부분을 수강하면 되나요?
안녕하세요! 이 강의를 수강하며, 프로그래머스 문제 통해서 연습중인데요, 프로그래머스 문제 파트 중 '정렬'과 연관된 문제풀이 강의는 어떤 것인지 궁금합니다. 감사합니다!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
완전탐색 문제 유형은 DFS로 푸는 것만 있나요?
안녕하세요, 해당 강의에서 풀어주는 완전탐색 문제는 DFS 방식으로 푸는 법만 있나요?프로그래머스 등과 같은 곳에서 완전탐색 유형 문제를 풀어보니, DFS 방식으로만 푸는 것은 아닌듯 하여 질문 드려요!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
조합 구하는 DFS 질문
numbers = [2, 1, 3, 4, 1] def dfs(L, s): global tmp if L == 2: num_list.append(tmp) tmp = list() return else: for i in range(s, len(numbers)): tmp.append(i) dfs(L+1, i+1) tmp = list() num_list = list() dfs(0, 0) print(num_list)인덱스를 [[0, 1], [0,2], [0,3], [0,4], [1, 2], [1,3], [1,4], [2, 3], [2,4], [3, 4]] 뽑고 싶은데[[0, 1], [2], [3], [4], [1, 2], [3], [4], [2, 3], [4], [3, 4]] 이렇게 나옵니다.6번 라인 tmp = list() > tmp.pop() 으로 수정하면 될 것 같은데 결과값은 안나오네요.어떤 부분을 실수했는지 감은 오는데 코드로 구현하는 법은 모르겠네요.도움부탁드립니다.
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
증가수열 만들기
from collections import deque N = int(input()) N_list = list(map(int, input().split())) dq = deque(N_list) current = 0 res = "" left = dq.popleft() right = dq.pop() while len(dq) >= 0: if current > left and current > right: break if len(dq) == 0: if current < left and current < right: if left < right: res = res + 'L' # current = left break elif left > right: res = res + 'R' # current = right break elif left > current > right: res = res + 'L' # current = left break elif right > current > left: res = res + 'R' # current = right break else: if current < left and current < right: if left < right: res = res + 'L' current = left left = dq.popleft() elif left > right: res = res + 'R' current = right right = dq.pop() elif left > current > right: res = res + 'L' current = left left = dq.popleft() elif right > current > left: res = res + 'R' current = right right = dq.pop() print(len(res)) print(res)deque 이용하여 pop(), popleft() 로 left, right 설정하여 분기하면서 찾았는데 실제 코딩테스트에서 이러한 코드도 시간 초과 문제가 발생하지 않을 지 궁금합니다.강사님 풀이의 경우 while 문 안에 sort()가 계속 돌아가서 시간 이 더 오래 걸릴거 같다고 생각해서 질문드립니다!
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
회의실 배정
n = int(input()) n_list = [list(map(int, input().split())) for _ in range(n)] n_list.sort(key=lambda x: (x[1], x[0])) cnt = 1 cur = n_list[0][1] for i in range(n): if cur <= n_list[i][0]: cur = n_list[i][1] cnt += 1 print(cnt)위 코드로 강사님이 제시해주신 케이스는 다 통과하는데,동일한 문제임에도 백준 1931번은 틀렸습니다로 출력됩니다. cnt=0, cur=0으로 고쳐서 해결하긴 했는데, 첫번째 회의는 무조건 회의실에 배정된다고 생각하는게 왜 틀린 생각인지 모르겠어서 질문 드리게 되었습니다. 감사합니다!
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 맞는 풀이일까요?
안녕하세요 좋은 강의 하나하나 들으면서 열심히 알고리즘 공부하고 있습니다. 다름이 아니라 제가 역수열 문제를 강사님의 풀이와 다르게 풀었는데요 이렇게 풀어도 맞을까요? 예제로 주어진 테스트 케이스는 모두 만족했습니다. 혹시 반례가 존재할까요?n=int(input()) A=list(map(int, input().split())) A=A[::-1] A_List=[n] start=n-1 for x in A[1:]: A_List.insert(x, start) start-=1 print(*A_List, sep=" ")
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션7) 16.사다리 타기(DFS)
안녕하세요, 강사님!강사님 풀이법 외에 제 코드로 풀면 어느 부분이 문제인지 알고 싶습니다. import sys sys.stdin=open("input.txt", "r") #좌, 우를 우선 탐색하도록 설정 dx=[0,0,1,-1] dy=[-1,1,0,0] def DFS(x,y): #특정 지점(2)에 도착하면 출발점 반환 if x==n-1 and board[x][y]==2: print(start) else: 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]==1: board[xx][yy]=0 DFS(xx,yy) board[xx][yy]=1 if __name__=="__main__": n=10 board=[list(map(int, input().split())) for _ in range(n)] # 값이 1인 출발점을 찾기 for j in range(n): if board[0][j]==1: start=j DFS(0,j)
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션7. 단지 번호 붙이기 (DFS)
안녕하세요, 강사님. 아래 제 풀이는 in3.txt에 대한 올바른 답을 반환하지 못합니다.그 이유에 대해서 알 수 있을까요? 즉 강사님의 코드와 제 코드의 차이점에 대해 좀 더 자세히 알 수 있을까요? <강사님 코드>import syssys.stdin=open("input.txt", "r")dx=[-1, 0, 1, 0]dy=[0, 1, 0, -1]def DFS(x, y): global cnt cnt+=1 board[x][y]=0 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]==1: DFS(xx, yy) if name=="__main__": n=int(input()) board=[list(map(int, input())) for _ in range(n)] res=[] for i in range(n): for j in range(n): if board[i][j]==1: cnt=0 DFS(i, j) res.append(cnt) print(len(res)) res.sort() for x in res: print(x) <제 코드>import sys sys.stdin=open("input.txt", "r") dx=[-1, 1, 0, 0]dy=[0, 0, -1, 1]# '1'인 지점으로부터 그 주위 '1'인 애들 탐색def DFS(x,y): global cnt 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]==1: board[xx][yy]=0 cnt+=1 DFS(xx,yy) if name=="__main__": n=int(input()) board=[list(map(int, input())) for _ in range(n)] res=[] # 먼저 '1'인 지점을 출발점으로 삼고 DFS 호출하기 for i in range(n): for j in range(n): if board[i][j]==1: cnt=0 DFS(i,j) res.append(cnt) res.sort() print(len(res)) for x in res: print(x)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
스토쿠 검사
이렇게 풀어도 정답 다 통과되던데 반례가 있을까요 ?import sys import string as t sys.stdin = open("input.txt", "r") a = [list(map(int, input().split())) for _ in range(9)] True_flag = True nums = [i for i in range(1, 10)] for y in range(0, 9, 3): for x in range(0, 9, 3): res = [] res.extend(a[y : y + 3][0][x : x + 3]) res.extend(a[y : y + 3][1][x : x + 3]) res.extend(a[y : y + 3][2][x : x + 3]) if len(nums) != len(set(res)): True_flag = False break if True_flag: print("YES") else: print("NO")
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
그리디-씨름선수 질문
안녕하세요 강사님!수업 도움이 정말 많이 되고있습니다, 감사합니다.다름이 아니라 그리디- 씨름선수 문제에서 질문이 있는데요!(181,60), (180,70), (170,72) 이렇게 꼭 키가 가장 큰 사람을 반드시 포함시키지 않아도세 명을 선발할 수 있다고 생각했는데 키가 가장 큰 사람을 반드시 포함시키고 세는 경우만 답이 되나요??그래서 아래와 같이 코드를 써봤는데 이렇게 하면 답이 틀릴까요?n=int(input()) data=[] for i in range(n): height,weight = map(int, input().split()) data.append((height, weight)) data.sort(key = lambda x : (x[0], x[1]), reverse=True) tmp_lst = [] for i in range(n): tmp=1 max = data[i][1] for j in range(i, n): if max<data[j][1]: max = data[j][1] tmp+=1 tmp_lst.append(tmp) max_cnt=tmp_lst[0] for i in range(n): if tmp_lst[i]>max_cnt: max_cnt=tmp_lst[i] print(max_cnt)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
왜 텍스트가 안불러와질까요? ㅜㅜ
AttributeError: 'tuple' object has no attribute 'readline'라고 뜨면서 input값들이 안불러와집니다..
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
K번째 수
안녕하세요초보여서.. 아무리 봐도 이해가 안가서 문의 드립니다. T,T기초적인 질문이라도 이해 부탁드립니다. T = int(input()) 의 값이 왜 input 파일의 첫번째 값이 나오는지 이해가 안갑니다. for 문에서 2번을 수행하는데 첫번째 수행에서 n,s,e,k 에는 INPUT 파일의 2번째 줄의 값이 들어가고, a에는 INPUT DML 3번째 줄의 값이 들어가는지 이해가 안갑니다. (마찬가지로 2번째 수행에서는 4,5번째 줄이 들어가는것도 이해가 안갑니다)바쁘시겠지만 답변 부탁드릴께용
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 해도 괜찮은건가요?
def DFS(L,a,b,c): global res if L==n: if a==b or a==c or b==c: return v1=max(a,b,c) v2=min(a,b,c) res = min(res, v1-v2) return DFS(L+1,a+p[L],b,c) DFS(L+1,a,b+p[L],c) DFS(L+1,a,b,c+p[L]) n=int(input()) p=[ int(input()) for _ in range(n) ] res=2147000000 DFS(0,0,0,0) print(res)강사님과 동일한 접근 방법으로 상태트리를 그려보고 코드를 작성했는데, 이 방법도 강사님 코드와 시간 효율면에서 동일한 성능을 갖나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제다운방법
안녕하세요, 강사님! 이제 막 수업 듣기 시작한 학생입니다.다름이 아니라 문제자료를 어디서 다운받을 수 있을까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 풀이는 왜 안되는지 질문 드리고 싶습니다.
def dfs(level, p): if level >= n: for x in res: if x != 0: print(chr(x + 64), end="") global cnt cnt += 1 print() else: for i in range(1, 27): if a[level] == i: res[p] = i dfs(level + 1, p + 1) res[p] = 0 elif i >= 10 and i // 10 == a[level] and i % 10 == a[level + 1]: # elif i >= 10 and a[level] * 10 + a[level + 1] == i: res[p] = a[level] * 10 + a[level + 1] dfs(level + 2, p + 1) res[p] = 0안녕하세요 선생님.다름이 아니고 제가 주석처리한 부분이 처음에 시도했던 방법인데 왜 이 방법에서는 정답이 출력이 안되는지 궁금해서 질문 남깁니다. 상태트리를 그리면서 추적을 해봐도 이부분 이해가 어렵네요.in2 파일을 출력했을 때 9개가 아닌 18개로 출력이 되고 중복 출력이 되고 있는 상황입니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
채점 프로그램 질문
안녕하세요 ~ 강의 잘 듣고 있는 수강생입니다.강의용 채점 프로그램이 혹시 in out 외에 추가적인 테스트 케이스가 있는 걸까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
채점 문제 해결부탁드립니다..
채점하려고 AA.py파일을 만들어 k의 약수문제에 붙여넣고 judge를 누르니 처리되지 않은 예외: System.AggregateException: 하나 이상의 오류가 발생했습니다. ---> System.IO.IOException: 파이프가 끝났습니다. 위치: System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 위치: System.IO.__Error.WinIOError() 위치: System.IO.FileStream.FlushOSBuffer() 위치: System.IO.FileStream.<>c.<FlushAsync>b__117_0(Object state) 위치: System.Threading.Tasks.Task.InnerInvoke() 위치: System.Threading.Tasks.Task.Execute()--- 예외가 throw된 이전 위치의 스택 추적 끝 --- 위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 위치: System.IO.StreamWriter.<FlushAsyncInternal>d__68.MoveNext()--- 예외가 throw된 이전 위치의 스택 추적 끝 --- 위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 위치: System.IO.StreamWriter.<WriteAsyncInternal>d__55.MoveNext() --- 내부 예외 스택 추적의 끝 --- 위치: System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 위치: System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) 위치: Judge.Program.Main(String[] args) 다음과 같은 오류가 발생하는데 어떻게 해야할까요
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
실행시간
if name == "__main__":start = time.time() n, m = map(int, input().split()) tmp = [0]*(n + m + 1) max = -2147000000 for i in range(1, n + 1):for j in range(1, m + 1):tmp[i + j] += 1 if tmp[i + j] > max:max = tmp[i + j] for idx, x in enumerate(tmp):if x == max:print(idx, end=' ') end = time.time() print() print(end - start, "sec")이렇게 해서 성공했는데 답보다 실행시간이 늦더라고여enumerate가 느린건가요?2중 for문에 if 가 들어가서 느린건가요?for문이 여러개인건 시간하고 크게 관계가 없는건가요?
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
Section2-7질문
안녕하세요 강사님!소수(에라토스테네 체) 문제에서 제가아래와 같이 코드를 짰는데런타임 오류가 나는데 이렇게 하면 오류가 나는 이유를 알 수 있을까요..?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션 3 수들의 합 문제 제 풀이 어디가 문제인지 한 번만 봐주십쇼
강사님의 풀이랑은 많이 다르지만 논리적으로 문제를 못 찾겠는데, 채점시 틀리는 케이스가 있고, 런타임 오류도 생깁니다. 도움 부탁드립니다.import sys sys.stdin=open("C:/Users/Desktop/AA/섹션 3/5. 수들의 합/in1.txt", 'r') n,m = map(int,input().split()) lst = list(map(int,input().split())) cnt = 0 for i in range(0,len(lst)): for j in range(1,len(lst)): if sum(lst[i:j]) == m: cnt +=1 print(cnt)