월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
Round에 대한 부정확함이 +0.5 라는게 이해가 되지 않습니다.
0.5를 더해서 round를 구해서 오류를 막으라는 말씀 같은데, 그럼 예를 들어서 3.4 의 반올림 결과는 3이어야 하는데, 0.5를 더하고 구하면 4가 되는데 이런 경우들은 어떻게 해야하나요? 정확하려면 오름값을 구하고, 오름값고 차이를 통해서 대치해준다거나 이런 노가다 방법 뿐인걸까요...?...
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
침몰하는 타이타닉
안녕하세요 강사님 강의 잘듣고 있습니다. 혹시 만일 조건에 2명이하라는 말이 없으면 어떻게 접근해야 할지 알려주실수있을까요?제가 생각한 방법은 .pop()을 해야하는데 ()안에 해당 인덱스를 넣어 빼야하는데 두개 일때는 그냥 처음과 끝만 하면돼서 더 생각할 필요가 없었습니다.만일 3명이하라고 한다면if p[0]+p[1]+p[-1]> limit: 에서 막혔습니다 ㅠ.. 제가 생각한건 여기에서 또 if문으로 조건 나눈다는 생각까진 해봤는데 이방법이 아닌거같아서요..
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
주사위 게임 코드리뷰 부탁드립니다(의문점도 있습니다)
#주사위 게임 ''' 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게 임이 있다. 규칙(1) 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 규칙(2) 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다. 규칙(3) 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3*100으로 계산되어 1,300원을 받게 된 다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2*1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그 중 가장 큰 값이 6이므로 6*100으로 계산되어 600원을 상금 으로 받게 된다. N 명이 주사위 게임에 참여하였을 때, 가장 많은 상금을 받은 사람의 상금을 출력하는 프로그램 을 작성하시오 ''' import random n = int(input("몇명에서 게임을 진행하나요: ")) numArr= [1,2,3,4,5,6] #주사위로 나올수있는 수 배열 생성 maxMoney = 0 #가장 많은 상금넣어줄 변수 for i in range(n): temp = [] #주사위로 나온 수를 넣어줄 변수 for x in range(3): temp.append(random.choice(numArr)) #주사위로 나올숫자를 랜덤으로 받음 temp.sort() #정렬해줌 max값 찾기 편하게 a, b, c = map(int, temp) if a == c : #정렬 되어 있으니까 (a == c)가 같으면 (a == b and b == c) 이의미이므로 (a == c)로 구현 money = 10000 + a * 1000 elif a == b or b == c: # 정렬되어 있으므로 2가지값이 같은경우만 구현 money = 1000 + b * 100 else: # 나머지 다다른경우! money = c * 100 if money > maxMoney: maxMoney = money else: continue print(f"가장 많이 받은 상금액수는: {maxMoney}원 입니다.") 이렇게 구현하였는데 혹시 더 좋은 방법이 있을까요? 의문점: 처음 if else 구문으로 전부다 같은경우 2가지만 같은경우 다 다른경우 구현하는 부분에서 강사님이 2가지 같은 수 구하는 구문에서 a==b or a == c 이렇게 하셨는데 정렬되어 있는 상태에서 a == c 가같은경우는 3가지가 다 같은숫자아닌가요? ex) 2 5 3 이렇게 입력되어있어도 정렬되면 2 3 5 이렇게 되니까 a == c랑 같은경우는 2 2 2 이런경우의수밖에 없지않나요? *항상 좋은강의 잘듣고있습니다 감사합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
주사위게임에서 질문있습니다.
삭제된 글입니다
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
랜선자르기
안녕하세요 강사님 강의 잘듣고있습니다. 강의에서 res가 답으로 되어있는데요 여기서 저의 궁금증은 res중에 최댓값을 max함수로 비교해서 저장하는식으로 굳이 안하신 이유가 이론적으로 while문을 계속 반복해서 이분탐색하면 그게 자연스럽게 최댓값이 되기 때문에 따로 안쓴거라고 생각해되 될까요? 제가 이해한게 맞는지 궁금합니다!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
for문 질문있습니다.
#제가 작성한코드 for i in range(n): for x in range(m): cnt[i+x] += 1 else: continue #강사님이 작성한코드 for i in range(1,n+1): for x in range(1,m+1): cnt[i+x] += 1 else: continue 같은 건가요?? 저는 0~n까지 접근하고, 강사님은 1~n+1까지 접근하고 같은건가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
2번에서 계속 오류가 나는데 왜 그런지 모르겠습니다..
2번은 오류가 나고 4,5번은 시간이 초과되는데 코드 상에서 왜 그런지 모르겠습니다. ##5 N, M = map(int, input().split()) lst = list(map(int, input().split())) cnt = 0 for i in range(N): s = lst[i] for j in range(i+1, N): if s == M: cnt += 1 i += 1 break elif s < M: s += lst[j] j += 1 else: i += 1 break print(cnt)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
왜 틀렸는지 모르겠습니다!!
##9 N = int(input()) tmp = -21470000 for i in range(N): n1, n2, n3 = list(map(int, input().split())) lst = [n1, n2, n3 ] eyes = set(lst) if len(eyes) == 3: maxi = max(lst) money = maxi * 100 if money > tmp: tmp = money elif len(eyes) == 2: doub = 0 for n in lst: if lst.count(n) == 2: doub = n break money = 1000 + 100 * doub if money > tmp: tmp = money else: money = 10000 + n1 * 1000 if money > tmp: tmp = money print(tmp)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제에서
첫줄이 어디 첫줄을 말하고 두번째줄이 뭘 말하는지 모르겠는데 혹시 알려주실수 있나요...?ㅠㅠ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제를 제가 제대로 이해하고 있는건지 어렵습니다.ㅠㅠ
T값: 몇번돌려줄지 정할려고! N값: n값을 왜 받는지 모르겠습니다 코드상 어디에서 쓰이는건가요? S,E,K는 이해했습니다. 처음에 t=1 인경우에 n=6 s=2 e=5 k=3 이렇게 입력받고 a=[5,2,7,3,8,9] a=[2,7,3,8] #s-1번째부터 e 번째까지 결과 a.sort() #a=[2,3,7,8] 인덱스 k-1= 2 즉 7출력! 여기서 한번도 for문을 돌면 다시입력을 안해줘도 같은값으로 들어가는건가요?? 만약에 입력된값이 같은값으로 들어간다면 지금 a리스트에는 a=[2,3,7,8] 로초기화 되어있는상태로 돌아갈텐데 a=a[s-1:e] #e=5인데 슬라이싱되는과정도 이상하고 변수 n값도 입력받았는데 어디서 쓰이는지 모르겠습니다 ㅠㅠ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
3중 for문에서 range문 질문입니다.
세개를 중복없이 세개 뽑는다는 점에서 0~n-1까지 돌린다는 것은 알겠습니다.(1번쨰부터 n번째까지) 근데 그럼 첫번쨰 for이 0~n-1이면, 두번쨰 포문은 1~ n-1, 세번쨰 포문은 2~n-2.. 쭉 가다가 첫번째 포문이 n-2보다 커지면 범위를 벗어나게 되는건 아닌가요? 아래코드라고 생각했는데, 답변 부탁드릴게요!!(__) for i in range(0, n-2): for j in range(i+1, n-1): for k in range(j+1, n)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
격자판 최대합
안녕하세요 강사님 저는 largest 가 2개 있어야 한다고 생각했었는데요 각행에서 제일 큰 값을 저장하는 largest1 각열에서 제일 큰 값을 저장하는 largest2 그래서 largest1 과 largest2 중 제일 큰값을 고르려햇습니다. 강의를 보니 largest를 하나만 써서 궁금증이 생겼습니다. 제가 생각하기엔 강의에서 하나로 쓴 이유는 먼저 1행을 largest와 비교, 그다음 변한 largest가 1열과 비교되면 최종적으로는 1행과 1열중 제일 큰값이 largest에 저장된다고 생각하였습니다. 1행,1열의 합들에서 최대값을 또한번 선택하기 위해서 largest값을 하나로 둔게 맞나요? 이게 맞다면 다음 2행, 2열을 돌때, largest에는 1행 과1열 비교해서 그 중 최대값이 저장되어있을것이고, for문이 돌면서 계속 비교한다면 최종largest 값에는 각행, 각열들의 합 중 최대값으로 저장된다고 생각했습니다. 이생각의 흐름이 맞는지 궁금합니다 ㅠㅠ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
카드 역배치
안녕하세요 강사님 강의보고 많이 배우고 있는 수강생입니다. 강의에선 구간을 역배치 할때 끝에서 끝부터 스왑하는식으로 했었는데요 제가 처음에 문제를 풀려고했을때 두가지 방법으로 해결하려했습니다. 1. 리스트 원하는 구간을 출력하고 싶을때 a[2:5]처럼 할수 있다는 부분을 이용하고 싶었고. 2. sort(reverse=True)를 사용해보려고 했었거든요 그러다 막혀서 강의를 보았고 선생님의 방법으로 해결할수 있었지만.. 제가 생각한 방법으로도 실제로 구현을 할수 있는지 궁금합니다 ㅠ 제 머릿속에는 한계가 있는거 같아가지고요 ㅠ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
k번째 수
안녕하세요 강사님 보통 문제에서 T처럼 여러케이스가 주어진다고 되어있으면 for문을 많이쓰나요 아니면 while문으로 많이 쓰나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
dfs 로는 풀 수 없을까요?
안녕하세요, 유익한 강의 정말 잘 듣고 있습니다. 이러한 강의를 만들어주셔서 감사합니다. 다름이 아니라 dfs로 풀려고 하는데 층이 잘 세어지지 않아서 문제가 발생합니다 import sys from collections import deque sys.stdin=open("input.txt", "r") def DFS(x,y): global cnt for k in range(4): xx=x+dx[k] yy=y+dy[k] if 0<=xx<m and 0<=yy<n and num[xx][yy]==0 and ch[xx][yy]==0: ch[xx][yy]=ch[x][y]+1 num[xx][yy]=1 DFS(xx,yy) if __name__=="__main__": dx=[-1,0,1,0] dy=[0,-1,0,1] n,m=map(int,input().split()) num=[list(map(int,input().split())) for _ in range(m)] ch=[[0]*n for _ in range(m)] for i in range(m): for j in range(n): if num[i][j]==1 and ch[i][j]==0: DFS(i,j) ch를 출력하면 정답 코드와 다르게 출력이 되는데, 이를 해결할 방법은 없을까요? 오랫동안 고민하다가 여쭙습니다. 감사합니다 ^^ 좋은 하루보내세요
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
제가 이해한게 맞는지 확인 부탁드립니다.
dvd안에 비디오 하나 이상이 들어갈 수 있도록 용량을 제일 큰 비디오크기 만큼은 정의해야 한다는 말씀이신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
setrecursionlimit 설정했는데, 프로그램이 중간에 종료됩니다.
안녕하세요 강사님. 좋은 강의 감사합니다. in4.txt 로 테스트할 때 , 비의 높이를 설정하는 for 문에서 1부터 시작하면 프로그램이 오류 없어 종료되어 버립니다. 그래서 cnt_debug 를 출력해보면 2600 정도에서 종료되어 버립니다. for문을 2 부터 시작하면 정상동작하고, 5개의 테스트도 성공합니다. 컴퓨터도 작년에 구매해서 파이썬 안돌아갈 정도는 아닙니다. 강사님 코드랑 비교해봤는데, 특별한 오류는 없는거 같습니다. python 버전은 3.7.9 입니다. 혹시 제가 실수한 부분이 있나요? import sys sys.stdin=open('in4.txt','rt') # input=sys.stdin.readline sys.setrecursionlimit(10**6) def DFS(x,y,T): global cnt_debug cnt_debug+=1 ch[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 a[xx][yy]>T: if ch[xx][yy]==0: print('>>>cnt:', cnt_debug, end=' ') ===> 디버깅 cnt 출력 DFS(xx,yy,T) if __name__=='__main__': dx=[-1,0,1,0] dy=[0,1,0,-1] n=int(input()) a=[list(map(int, input().split())) for _ in range(n)] max1=0 for xx in a: for x in xx: if x>max1: max1=x res=list() for t in range(1, 100): ===> 이부분을 "2" 부터 시작하면 잘되는데, 1부터 하면 중간에 프로그램이 중간에 오류없이 종료됩니다. if t > max1: break cnt=0 ch=[[0]*n for _ in range(n)] for i in range(n): for j in range(n): if a[i][j]>t and ch[i][j]==0: cnt_debug=0 DFS(i,j,t) cnt+=1 res.append(cnt) print(max(res)) 오류 화면은 아래와 같습니다. 2607에서 종료됩니다. 특별한 오류 메시지는 없습니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
미로 탐색 DFS/BFS 차이점 문의.
안녕하세요 선생님. # 9. 미로의 최단거리 문제의 정답 while dQ: now = dQ.popleft() for i in range(4): x = now[0] + dx[i] y = now[1] + dy[i] if 0<=x<n and 0<=y<n: if a[x][y]==0: a[x][y]=1 dis[x][y]=dis[now[0]][now[1]]+1 print(x,y, '>>>', dis[x][y]) dQ.append((x,y)) 1. 미로탐색 BFS(9.미로의 최단거리 문제)에서 출발->도착까지의 통로가 여러개인 경우는 어떻게 풀어야 하나요? 9번 알고리즘으로 10번 예제로 풀어보니 정답은 맞는거 같습니다만, 예외처리 사항(또는 주의사항)이 있는지 문의 드립니다. 2. 강의(차후 강의포함)에서 다루신 유형말고 미로탐색에서 다른 경우도 있나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
정보올림피아드
안녕하세요, 좋은 강의 잘 보고 있습니다. 이번에 정보올림피아드 준비를 하고 있는데, 강사님 강의 들으면 직접적인 도움이 될는지요? 항상 감사합니다^^
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
K 번째 수 코드 질문입니다..
import sys sys.stdin=open("TextFile1.txt", "rt") T=int(input()) for t in range (T): n ,s ,e ,k =map(int, input().split()) a=list(map(int, input().split())) print(a) 이렇게 똑같이 입력했는데 계속 예외가 발생함 too many values to unpack (expected 4) 이렇게 뜨네요vㅍ