월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
주사위게임
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 주사위게임 풀다가 질문이 있어서 글올립니다 n=int(input()) for i in range(n): a=list(map(int, input().split())) k=[0]*6 # [0,0,0,0,0,0] prize=0 max_prize=-0.1 for j in a: k[j-1] += 1 if k[j-1]==3: print(k[j-1],'3번')# 2 2 2 prize=10000+(j)*1000 print(prize) elif k[j-1] ==2: print(k[j-1],'2번')# 3 3 6 prize=1000+(j)*100 print(prize) elif k[j-1] ==1: print(k[j-1],'1번')# 6 2 5 prize=max(a)*100 print(prize) print(prize) 현재 저는 이렇게 풀고 있는 중인데 3 3 6을 넣었을 때 마지막 6을 넣었을 때 계속 오류가 나서 1300으로 prize값을 얻지 못하고 계속 600으로 뜹니다. 3 3 3 6 1 1번 600 600 2 2번 1300 1 1번 600 600
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
같은 눈이 2개만 나온 경우에 대한 질문입니다.
tmp.sort() 로 값을 정렬했으니, a == c 가 성립하는 경우는 a, b, c 가 모두 같은 값인 경우밖에 없지 않을까요? 그러니 같은 눈이 2개인 elif 조건문에서 elif a==b or a==c: 가 아닌, elif a==b: 인 것이 더 정확하지 않을까요? 물론, 처음 if 조건문에서 같은 눈이 3개 나오는 경우가 미리 처리되기 때문에 결과값은 이러나저러나 똑같이 나올 것 같지만요.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
변수 질문입니다.
안녕하세요. 강의를 듣다가 질문글 남깁니다. 프로그래머스에서 문제를 풀면서 ex) -------문제------- def fun1(money, cost): return answer ------------------------ 위와 같은 문제에서, 제가 임의로 def fun2을 만들어서 money와 cost변수를 사용하고싶을때는 fun1 함수내에 fun2(money,cost) 와 같이 작성하여 변수를 넘겨줘야만 사용할수 있나요? 다른 방법이 있는지 궁금합니다.!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
조합으로 구하면 안되나요?
선생님 이 문제 부분집합으로 푸셨는데, 조합으로 구하면 안되나요? 부분집합과 조합의 차이가 무엇인가요? 아래처럼 조합으로 코드 짰는데 선생님께서 푸신 답변과 비슷한듯 다르네요. for i in range(s, n+1)을 없이 푸셨는데... 조합에서는 필요하지 않나요? def DFS(s, money): global max if s > (n+1): return if s == (n+1): if money > max: max = money for i in range(s, n+1): if i+graph[i][0] <= (n+1): DFS(i+graph[i][0], money+graph[i][1]) DFS(i+1, money) n = int(input()) graph = [] for _ in range(n): a, b = map(int, input().split()) graph.append([a, b]) graph.insert(0, [0, 0]) max = -2147000000 DFS(1, 0) print(max)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
Top down, Bottom Up
안녕하세요 강사님 강의 정말 잘 듣고 있습니다. 해당 문제에서 궁금한 점이 있어 질문드립니다. 보석의 개수가 무제한이라는 조건에서 다음과 같이 푸셨는데 for i in range(n): for j in range(w[i],k+1): dp2[j] = max(dp2[j-w[i]] + v[i], dp2[j]) 문제의 조건에서 보석이 무제한이라는 조건이 없고 하나씩만 써야 한다면 다음과 같이 풀어야 답이 나오더라구요 for i in range(n): for j in range(k, w[i]-1, -1): dp1[j] = max(dp1[j-w[i]] + v[i], dp1[j]) 이때, j를 거꾸로 돌고 안돌고의 차이가 어떤 영향을 미치는지 궁금해서 질문드립니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
방문체크 하지 않아도 되나요?
부분집합을 하는 문제라고 판단하여, 부분집합구하기 문제처럼 ch(체크) 리스트 만들어서 풀었는데 답이 안나오네요.. 무엇이 문제일까요? 강의를 보니 체크 리스트 사용하지 않으셨던데... 사용해야하는 것 아닌가요? 추가적인 질문으로, 부분집합과 조합 방식의 차이가 무엇인지 아직까지 잘 이해가 되지 않는데.. 부분집합은 가지치기가 본인 포함 전부 다 되고, 조합은 가지치기가 본인을 제외한 하위 부분만 되는게 맞나요? 부분집합을 조합처럼 구할 수 있고, 조합을 부분집합처럼 구할 수 있나요? def DFS(L, time, sum): global res if time > m: return if L == n: if sum > res: res = sum else: for i in range(n): if visited[i] == 0: visited[i] = 1 DFS(i, time+graph[i][1], sum+graph[i][0]) visited[i] = 0 DFS(i, time, sum) if __name__ == '__main__': n, m = map(int, input().split()) graph = [] for _ in range(n): a, b = map(int, input().split()) graph.append([a, b]) visited = [0]*n res = 0 # 최대 점수 DFS(0, 0, 0) print(res)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
리스트를 만드는 방법
안녕하세요, 강사님. 강의 들으면서 코딩테스트 정말 잘 준비하고 있습니다. 리스트를 생성하는 방법에 대한 질문이 있습니다. 강사님께서 리스트를 생성하실 때, 가끔은 arr = [] for _ in range(10): arr.append(int(input()) 이런 식으로 빈 리스트를 생성한 후에 그 안에 요소들을 차곡차곡 채워 넣는 방식으로 생성하시고, n = 10 arr = [0]*n for i in range(10): arr[i] = int(input()) 가끔은 이런 식으로 0을 채워넣은 리스트를 생성한 후에 각각의 index를 활용하여 list의 요소를 바꿔주는 방식을 이용하시는 것을 보았는데, 두 가지 방식에 따른 효율성(시간복잡도의 유의미한 차이가 있다 등) 및 논리성(두 번째 경우 C에서 Array를 구성하듯 리스트의 공간을 미리 확보해 놓고, 그 안에 값을 채워넣는 방식이다)의 차이가 있을까요? 또, 강사님이 선호하시는 방식은 무엇인지, 그에 대한 특별한 이유가 있는지 궁금합니다!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
sum 계산시
def DFS(L, sum): global res if L > res: ## Cut Edge return if sum > m: return if sum == m: if L < res: res = L else: for i in range(n): sum += a[i] DFS(L+1, sum) 안녕하세요! 문제 풀다가 궁금한 점이 생겨 질문드립니다. sum을 넘겨줄때 DFS(L+1, sum + a[i])가 아닌 위 하늘색 부분처럼 미리 계산해서 넘겨주면 결과가 다르게 나오던데 제 눈에는 같아 보여서요...! 결과가 달라지는 이유가 궁금합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
extend()
extend()를 사용하면 안될까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
몸무게 짝짓기
정렬 후에 짝지어서 나갈 때 가장 큰몸무게와 가장 작은몸무게 나가는게 아니라 M kg 에 최대한 가깝게 짝지어서 나가는게 맞지 않나요??
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 설명 pdf 파일 구할 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 동영상 항상 멈춰보고 문제를 푸는데 어떤 문제는 문단도 길고 따로 pdf파일로 보면 편할꺼 같아 문의드립니다
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요, 채점파일 오류때문에 문의드립니다.
아래와 같이 주석처리를 했고 AA.py를 채점파일과 같은 폴더에 두고 실행하는데 이렇게 오류가 뜹니다,, 원인이 뭘까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
cnt = 2147000000 질문입니다
cnt=0 초기 변수로 설정해두고 값을 출력하면 0 나옵니다. cnt=2147000000 변수로 설정해두고 값을 출력하면 정상적으로 출력됩니다. 이 두 개의 차이점이 어떤건가요? 1차원적 배경지식으로 바라봤을 때 0으로 설정하면 다른 값으로 충분히 바뀔 수 있다. 생각이 드는데 정확한 차이를 모르겠네요 정수의 최대 값이 2147000000 이어서 최대 값을 설정하는 것 이해가 갑니다 음수 -2147000000 어떨 때 사용하나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 다운로드 받아서 출력하고 싶은데 경로가 어딘지 문의드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 채점 프로그램은 다운을 받았는데 여기에 있는 문제를 받아서 출력해서 보면서 풀어보고 싶은데 다운로드를 어디서 받을 수 있는지 모르겠어서 문의 남깁니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
중복 방지
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 수업 너무 잘 듣고 있습니다. K번째 큰 수 강의를 듣다가 의문이 들어 이렇게 글을 남깁니다. 같은 숫자의 카드가 여러장 있을 수 있다는 것은 같은 수의 숫자를 뽑을 수 있다는 뜻이라고 저는 이해했습니다. 삼중 for문에서 중복을 방지하기 위해서 for i in range(n): for j in range(i+1,n): for m in range(j+1,n): 을 하셨는데 제 생각으로는 3 4 4 5 6 이 있다고 치면 중복된 숫자도 포함되게 3+4+4,3+4+5,3+4+6,4+4+5+,4+4+6,4+5+6 한 뒤, 이 값들을 res에 넣어서 중복처리해주는 거라고 생각하는데 제가 잘못생각하고 있는 지 궁금하여 글을 남깁니다! 아 그리고 res =list(set())을 하고 res 출력을 해보니 중복된 것이 나오는데, set 함수가 먼저 적용되어 중복된 수를 없애고 list 형식으로 바뀌는 것이 아닌가요??
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
배열 n+1 궁금합니다.
파이썬 프로그래밍 섹션 6의 3번문제인 DFS를 활용한 부분집합 구하기 문제에 대해 궁금증이 있어 문의를 남깁니다. 해당 문제는 사용하는 경우와 사용하지 않는 경우를 파악하기 위해 0,1로 사용여부를 판단하고 있습니다. 코드에서 ch=[0]*(n+1)이 초기화 하는 부분에서 1,2,3의 칸을 만들어 초기화 하고 있는데... 배열은 0부터 시작하는 것으로 판단이 되는데 왜 1,2,3으로 하셨는지 궁금합니다.. 저렇게 만들어지면 0,1,2,3의 칸이 만들어지는거 아닌가요? ㅠ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
질문이 있습니다
DFS(L+1, sum+pv[L], time+pt[L]) DFS(L+1, sum, time) 아래의 현재문제를 안풀수도 있다는 곳을 왜하는지 조금 더 자세히 설명해주실 수 있을까요..
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드도 맞을까요?
안녕하세요 강사님! 강의 잘 듣고 있습니다 밑에 코드처럼 만들어봤는데 2번 채점에서 틀린결과라도 뜹니다. 혹시 이 코드에서 문제가 있는지 있다면 어디를 고쳐야하는지 궁금합니다! from collections import deque order = input() n = int(input()) for i in range(n) : cnt = 0 isTrue = False dq=deque(input()) for j in dq : if cnt < len(order) and j == order[cnt] : cnt+=1 if cnt == len(order) : isTrue = True print('#%d %s' %(i+1,'YES 'if isTrue else 'NO'))
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이코드는 무엇이 잘못된것인가요?
알고리즘 문제는 혼자 생각하고 해결하는 과정이 중요한 것을 알기에 정말 최대한 저혼자 2시간동안 디버깅을 해보았지만 무엇이 잘못된 것인지 모르겠어서 질문 남깁니다. 조합만들기 식으로 풀어봤는데 제가 생각하기에 논리상으로는 맞는것 같은데 계속 답이 이상하게 나옵니다. 한번만 코드 검토 부탁드립니다... import syssys.stdin=open("input.txt","rt")def DFS(v, money): global maxMoney if maxMoney<money: maxMoney=money if v>n: return for i in range(v,n+1): DFS(v+sch[i][0], money+sch[i][1])if __name__=='__main__': n = int(input()) ch=[0]*(n+1) sch=[(-1,-1)] maxMoney=-1 for _ in range(n): # t는 걸리는 시간(일), p 는 보수 t, p = map(int,input().split()) sch.append((t,p)) DFS(1,0) print(maxMoney)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
rt 초기값 관련 질문
안녕하세요 강사님 강의 잘 듣고 있습니다:) 풀이에서 rt를 Line[n-1]로 지정하셨는데 말사이의 간격은 1에서 9라면 최대 9-1 로 8이되기때문에 rt = (Line[n-1]-1)로 지정되어야하는게 아닌지 궁금합니다.