월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
파이썬 환경설정 질문
선생님 파이썬 파일을 저장하면 모든 파일이 파이참으로 저장됩니다. 비주얼스튜디오를 쓰나 비주얼 스튜디오를 쓰나 쥬피터를 쓰나 파이참으로만 저장됩니다. 비주얼스튜디오 코드면 비주얼 스튜디오코드로 저장하고싶은데 방법을 모르겠습니다. 그리고 이 파이참이 저장된 파일을 비쥬얼 스튜디오 코드로 드래그앤 드럽하면 실행이 안됩니다. 방법좀 알려주세요 ....
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요!
선생님 이런 에러는 왜 생기는걸까요 ? ㅜㅜ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
M,N
선생님 풀이에 M, N 이 바꿔서 있군요 ㅜㅜ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
커팅조건
import sys import itertools as it # sys.stdin = open("input.text", "rt") input = sys.stdin.readline n = int(input()) a = [int(input()) for _ in range(n)] s = sum(a) res = [0]*3 smallest = float('inf') def dfs(l): global smallest if max(res)-s/3 > smallest: return if l == n: tempSet = set(res) tempList = list(tempSet) if len(tempList) == 3: smallest = min(smallest, max(res)-min(res)) else: for i in range(3): res[i] += a[l] dfs(l+1) res[i] -= a[l] dfs(0) print(smallest) dfs 함수에 커팅 조건을 추가해주었는데 시간초과없이 통과가 되었습니다. 혹시 이 부분이 다른 데이터에서도 문제가 되지 않고 통과가 가능할까요 ? (반례가 존재하나요 ?)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요
안녕하세요 선생님 ㅎㅎ 프로그래머스 문제를 한번 풀어봤는데 궁금한게 생겼습니다. 프로그래머스는 solution이라는 함수에서 정답을 return 해야 합니다. 저희는 DFS 문제 풀이 할때 main에 있는 변수에 직접 접근 가능 했습니다. 하지만, 프로그래머스에서는 DFS함수에서 solution함수 변수에 접근 불가능 합니다. 이럴 경우, DFS함수 호출시 매개변수로 넘겨 주는게 맞나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
[질문] 재귀함수 return 차이
[질문1] 먼저, dfs에서 스택에 넣다가 return을 만나면 이전 호출문으로 되돌아 간다고 생각을 하고 있었는데, 재귀함수에 return이 없는 경우에는 어떻게 종료지점을 알고 스택에서 이전 호출문 위치로 되돌아 가는지 궁금합니다. [질문 2] 아래 2개 재귀함수가 각각 값이 6, None이 나오는데 그 이유를 알려주시면 감사하겠습니다. 1. def max_int(a,b): if a%b == 0 : return b # <== 여기서 6을 출력하게 됨. else: return max_int(b,a%b) print(max_int(192,162)) ## 실행결과 : 6 2. def max_int(a,b): if a%b == 0 : return b # <== 여기서 None을 출력하게 됨. else: max_int(b,a%b) print(max_int(192,162)) ## 실행결과 : 6 [위에 2개 함수 출력 화면] 감사합니다.^^
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 선생님!! 섹션4-8 (침몰하는타이타닉) 관련하여 질문남깁니다
n, m =map(int,input().split())arr = list(map(int,input().split()))arr.sort(reverse=True)cnt = 0for x in arr: cnt += 1 arr.remove(x) for y in arr: if x+y <= m: arr.remove(y) breakprint(cnt)강의의 풀이법도 이해되지만 제가처음에 짠 코드가 왜 논리적으로 오류가 나는지 모르겠어서 문의남깁니다!!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
res=[0]*n과 res=[]의 차이?
안녕하세요. 선생님. 강의 잘 듣고 있는데, 한 가지 궁금한 점이 있어서 문의드립니다. 문제를 풀다보면 정답을 구하는 과정에서 정답에 필요한 값을 저장할 때 형식이 어떨때는 res=[0]*n로 정할때가 있고 어떨때는 res=[]로 기본값을 설정할 때가 있습니다. res는 0으로 값을 초기화시킨다는 것이고, res는 빈 리스트를 기본값으로 한다는 것인데, 언제 위 둘을 사용하는지 궁금합니다. 알파코드 문제를 예시로 들었을 때, res=[]으로 하면 오류가 나더군요. 강의 잘 듣고 있고, 답변 기다리겠습니다. 감사합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요. 질문이 있습니다.
안녕하세요. 여기서 자기 자신으로 가는 것을 0으로 초기화했는데, 만약 자기 자신으로 되돌아가는 가중치가 있다면 풀이가 달라질까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
if문 순서 바꾸기
안녕하세요! DFS 내에 if문의 순서를 바꾸면 어떨지 궁금해서 if time > m을 if L==n아래로 넣어봤는데 index오류가 났습니다! m보다 time이 큰 것을 커트하는 이유는 문제에 조건에 맞추기 위해서인데 어째서 프로그램에서도 오류가 났는지 이해가 되지 않아 궁금합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 문제 접근 방법에 관해 질문있습니다.
선생님, 가방문제(냅색 알고리즘) 접근 방법에 관해 질문이 있습니다. 문제를 보고 "dy[j-w]+v" 식을 어떤 접근 방법으로 만드셨나요? 선생님 설명과 식을 보고 나면 이해가 가는데 처음 보는 문제에서 dy식을 만들때 어떻게 접근해야할지 모르겠습니다. 나름의 팁이 있을까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 선생님
안녕하세요 선생님 5. 수의합 에서 이렇게 사용해도 되나요? sum함수는 선호되지 않은 방법인가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
비슷한 듯 새로운 풀이법
선생님 안녕하세요! 저는 강의를 2회독 중인 학생입니다! 현재 문제만 보고 코드를 구현하고 있던 중 if (dif <= big) and (score<x)를 한번에 걸러주는 조건문을 생각해봤습니다. 어차피 tmp<=min으로 조건문을 하면 tmp ==min인 경우에 불필요하게 'big = temp'를 넣는 과정 외에는 차이가 없다고 생각했기 때문입니다. 실제로 문제에 나와있는 입력값을 넣었을 때도 같은 경우가 나왔습니다. 하지만 채점을 해보니, 테스트 케이스 1번 부터 틀렸었습니다. 제 코드에 어떤 논리적 오류가 있는지 알고 싶습니다...! 다음은 제 코드입니다. ----------------------------------------------------------------------------------------------------------- n = int(input()) arr = list(map(int, input().split())) big = 217300000000 ave = int(sum(arr)/n + 0.5) score = 0 res = 0 for idx, x in enumerate(arr): tmp = abs(ave-x) if (tmp <= big) and (score < x): big = tmp score = x res = idx+1 else: print(ave, res)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
input 관련 질문입니다.
안녕하세요 저는 python 코드 입력할 때 jupyter notebook이나 colab을 사용하고 있습니다. jupyter notebook이나 colab에서의 .ipynb 파일 상에 해당 코드를 입력하게 되면 input 부분에서 올바르게 작동하지 않고 있습니다. 코드를 실행시키면 텍스트 파일의 데이터를 읽지 못하고 직접 값들을 타이핑하는 형태로 작동합니다. .py파일로 변환하여 채점을 하게 되면 문제없이 결과가 나오긴 합지만 중간에 확인이 어려운 점이 있습니다. 혹시 파일 입력시에 .ipynb에서도 작동할 수 있는 방식이 따로 있는건지 궁금합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
sys.stdin=open("input.txt", "rt") 질문
안녕하세요!! 다른 강의를 듣다가 첫 줄이 sys.stdin=open("input.txt", "rt") 인 줄 알았는데 어느새 "rt"가 아니라 "r"로 바뀐 것을 발견했습니다. 둘의 차이가 무엇인가요??
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
list관련 질문
안녕하세요 list관련 질문이 있습니다. 저는 아래 코드와 같이 작성해서 잘 작동하였습니다. 그런데 list.append를 사용하면 실행시간에서 많이 차이가 날지 궁금해서 글 남깁니다. import sys sys.stdin=open("in1.txt","rt") a = [list(map(int, input().split())) for _ in range(7)] def check(a): a[0], a[1] = a[1], a[0] if a[:2] == a[3:5]: return True else: return False cnt = 0 for i in range(7): for j in range(3): li = list() li2 = list() for k in range(j, j+5): li.append(a[i][k]) li2.append(a[k][i]) if(check(li)): cnt += 1 if(check(li2)): cnt += 1 print(cnt)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
( 참고)코드 길이 반으로 줄여보았습니다
import sys sys.stdin = open("input.txt", 'r') n = int(input()) nums = list(map(int, input().split())) # 각각의 숫자가 가질 수 있는 가장 긴 길이 저장하는 리스트 max_list = [0]*(max(nums)+1) # 각각의 숫자에 대해 자신보다 작은 수 중에 가장 큰 수 + 1 for num in nums: max_list[num] = max(max_list[:num])+1 print(max(max_list))
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
시간 복잡도
선생님 안녕하세요 아이디어를 코드로 구현하기 전에 시간복잡도를 생각해 시간초과가 발생할지 안할지 생각해보고 시간초과가 안날 것 같을 때 그 아이디어를 코드로 구현해야 시험에서 시간낭비가 없을 것 같은데 그 기준을 어떻게 잡아야 하나요? 왜냐면 지금 이 문제는 시간복잡도가 n제곱임에도 시간초과가 안나지만 어떤 문제는 시간초과가 나서 질문드립니다
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
숫자만 추출 질문
안녕하세요 강의 덕분에 많이 도움이 되고 있습니다. 저는 아래와 같이 코드를 짰습니다. 숫자만 걸러내기 위해 입력 문자 하나하나 ord를 적용해서 숫자인지 확인하였습니다. 그리고 숫자만 따로 문자로 만들어서 int()로 형변환을 하니 0이 사라졌습니다. 이렇게 문제를 해결해도 되는 것인가요?? import sys import math #sys.stdin=open("input.txt","rt") arr = input() def find_gcd(x): cnt = 0 for i in range(1, x+1): if x % i == 0 : cnt +=1 return cnt st = '' for i in range(len(arr)): #print(ord(arr[i])) if ord('0') <= ord(arr[i]) <= ord('9'): st += arr[i] res = int(st) print(res) print(find_gcd(res))
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드도 괜찮을까요?
def dp(arr): dy = [0]*(len(arr)) dy[0] = 1 for i, num in enumerate(arr): if i == 0: continue if num == max(arr[:i+1]): dy[i] = dy[i-1] + 1 else: dy[i] = dy[i-1] return dy[-1]