월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
동전교환 효율성
안녕하세요동전교환문제에서 저는 부분집합을 만들고 계산은 마지막에 하는 방식으로 풀어봤습니다.효율성 방식에서 상태트리로 쭉 나가는 강사님 방식이랑 비교하면 뭐가 더 나은가요?def DFS(L): money= m global minn cnt=0 if L==n: #계산은 여기서 for i in range(0,n): if ch[i]==1: cnt+=(money//p[i]) money%=p[i] if cnt<minn and money==0: minn=cnt else: # 깊이탐색해서 경우의 수 만들기 ch[L]=0 DFS(L+1) ch[L]=1 DFS(L+1)
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
gcd 최대공약수
안녕하세요 선생님정보 올림피아드같은 대회에서는 gcd같은 함수를 사용할 수 있을까요?만약 최대공약수를 구하는 문제가 나온다면gcd를 이용해서 풀어도 되는건가요? 아니면 최대공약수를 구하는 코드를 작성해야 하나요? 그리고, 혹시 파이썬 내장함수 math의 gcd 함수가 작동되는 원리를 알고계신가요?? 감사합니다.
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이항계수
안녕하세요 선생님 https://www.acmicpc.net/problem/11050제가 이항 계수1 이라는 문제를 풀고 있는데, 이항 계수가 뭔지 잘 모르겠어서 질문 올립니다.이항정리에 대해서 검색도 해보았는데,를 어떻게 구해야 할까요?감사합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
약수K, 시간 복잡도
요렇게 하면 시간 복잡도를 줄일 수 있을 것 같아욤. def input_function(line_string: str): n, k = map(int, line_string.split(' ')) half_value: float = n ** 0.5 temp_results: list[int] = [] for value in range(1, int(half_value) + 1): if n % value == 0: temp_results.append(value) final_results: list[int] = [] for i in temp_results: final_results.append(i) for i in temp_results[::-1]: final_results.append( 6 // i) if k > len(final_results): return -1 return final_results[k-1]
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
exit_code1 오류코드
안녕하세요후위연산 채점 프로그램을 돌리면 exit_code1 오류코드가 나옵니다. 이 오류가 뭔지 알 수 있을까요?직접 int1~5까지 돌려을때는 정답 일치 하는데 프로그램 돌리면 exit_code1가 뜹니다.그나마 의심가는게 eval같은데 혹시 eval함수는 사용하면 안되나요?코드 첨부합니다. import sys #채점할떄는 주석 #sys.stdin=open('코딩테스트\input.txt','rt') n=sys.stdin.readline() stack=[] for i in n: if i.isdigit(): stack.append(int(i)) elif not i.isdigit(): b=stack.pop() a=stack.pop() stack.append(eval(f'{a}{i}{b}')) print(stack[0])
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
함수 질문입니다!
강사님 강의가 너무 도움이 많이 됩니다. 감사합니다!구글 검색을 해도 잘 모르는 부분이라 이렇게 질문을 남깁니다.if __name__== ~~max_h=0 ;이렇게 1번 같은 구문으로 시작점을 알린다는 건 알겠는데 이걸 임포트 구문 다음에 바로쓰면 되는게 아닌가요? 어떤 상황에서 사용하는지 잘 모르겠습니다. 2번은 파이썬에서 ; 세미콜론은 굳이 사용하지 않는다고 배웠는데 왜 사용하신건지 궁금합니다! 명절 잘 보내세요!! 감사합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
격자판 회문수 풀이
a=[list(map(int, input().split())) for _ in range(7)] res=0 def check(a): res=0 for i in range(3): temp=a[i:i+5] temp.reverse() if temp==a[i:i+5]: res+=1 else: res+=0 return res for i in range(7): temp=list([0]*7) temp2=list([0]*7) for j in range(7): temp[j]=a[i][j] temp2[j]=a[j][i] res+=check(temp) res+=check(temp2) print(res) 이렇게 풀어도 괜찮을까요??
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
효율성
안녕하세요 저는 정렬을 사용하지 않고 min,max를 이용해서 풀었는데 정렬로 푸는게 더 효율적일까요?코드 첨부합니다.while squre: if len(squre)==1: boat+=1 break if max(squre)+min(squre)>m: squre.remove(max(squre)) boat+=1 else: squre.remove(max(squre)) squre.remove(min(squre)) boat+=1
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
백준 10815번 list와 set차이
안녕하세요, 선생님항상 강의 잘 듣고 있습니다. https://www.acmicpc.net/problem/10815 제가 백준을 푸는데, 이 10815번 문제가 list로 찾으면 시간 초과가 뜨고, set으로 바꿔서 찾으면 시간 초과가 안뜨더라고요..set이 순서가 없고, 중복이 안된다는것은 알고있습니다.하지만 왜 set으로 바꿔서 속도가 빨라지는건지 궁금합니다. list를 사용한 코드 - 시간 초과N = int(input()) a = list(map(int, input().split())) M = int(input()) b = list(map(int, input().split())) for i in b: if i in a: print(1) else: print(0) set을 사용한 코드N = int(input()) a = set(map(int, input().split())) M = int(input()) b = set(map(int, input().split())) for i in b: if i in a: print(1) else: print(0) 감사합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
블로그 포스팅 문의
안녕하세요 강사님?혹시 제공해주시는 문제랑 풀이를 블로그에 포스팅해도 괜찮을까요? 개인 공부 기록을 목적으로 합니다.강의 잘 듣고 있습니다. 항상 건강 유의하시길 바랍니다.공익규 드림.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
if 와 elif의 차이가 무엇인가요?
안녕하세요 선생님! 선생님께서 언제는 elif를 쓰실 때도 있고 지금처럼 if를 두번 쓰시는 경우가 있는데 혹시 두 경우의 차이가 어떻게 되는가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
얕은 복사 해결법
안녕하세요 좋은 강의덕분에 실력 향상을 느끼고 있는 학생입니다.궁금한점이 있어 질문드립니다.스도쿠 문제를 풀면서 3*3의 9개 사각형을 체크하기 위해 리스트를 만들었습니다. 아래와 같은 방식을 사용했더니 한 값만 삭제해도 나머지도 같이 삭제가 되더라구요. 얕은 복사로 인해 같은 메모리를 공유해서 그런거 같은데 한 값만 삭제되는 깊은 복사가 되게 추천하시는 방법이 있나요?사각형=[[i for i in range(1,10)]]*9 del 사각형[0][0] print(사각형) >>> [[2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9]]
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
변수가 연동되나요?
안녕하세요 선생님항상 강의 잘 듣고 있습니다.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문을 사용해도 괜찮은건가요?언제 시간복잡도를 따져야하나요?제가 작성한 코드는 시간복잡도가 어떻게 되나요?