월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
카드 역배치(정올 기출)
- 카드 역배치(정올 기출)문제 풀이 질문----- 예제는 통과되었는데... 어디가 틀렸는지 부탁드립니다. import sys,re sys.stdin=open("input.txt","r") idx=[i for i in range(1,21)] for i in range(10): p,q=map(int,input().split()) tem=idx[p-1:q] idx=idx[:p-1]+idx[q:] for k in tem: idx.insert(p-1,k) print(idx)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이진 탐색은 최적화를 위한 알고리즘이라고 볼 수 있나요?
더 좋은 결과를 찾기 위해 탐색하는 알고리즘이 이진 탐색이니 최적화를 위한 알고리즘이라고 할 수 있나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
스택에서 ')'가 나올때
stack.pop()을 해서 스택의 끝을 비우는 이유를 잘 모르겠습니다... 혹시 조금 자세히 설명해주실 수 있을까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
채점기가 되지 않습니다 ㅠㅠ
저렇게 되는데 어떻게 해야할까요 ㅠㅠ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
제 방식대로 풀어봤는데 어디가 틀린지를 모르겠습니다..
a=int(input()) b=list(map(int,input().split())) c=[] d=[] for i in range(a-1): if len(c)==0: if b[0]<b[-1]: c.append(b[0]) else: c.append(b[-1]) elif len(c)!=0: if b[0]>b[-1]: if c[-1]<b[-1]: c.append(b.pop()) d.append("R") elif c[-1]>b[-1]: break if b[-1]>b[0]: if c[-1]<b[0]: c.append(b.pop(0)) d.appnend("L") elif c[-1]>b[0]: break if len(b)==1: if b[0]>c[-1]: c.append(b[0]) d.append("L") break print(len(c)) print(d)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 실행할 때, 유니코드 오류가 생깁니다.
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb0 in position 6: invalid start byte 비주얼 스튜디오로 코드 실행 시, 위와 같은 오류가 뜹니다. 유니코드에 대한 에러라고 뜨는데 , 해결방법이 궁금합니다. 제가 작성한 코드는 다음과 같습니다. # K 번째 약수 풀이 import sys sys.stdin = open("input.txt", "rt") # 1. 내 풀이 n, k = map(int, input().split()) var = list() for i in range(1, n + 1): if n % i == 0: var.append(i) if len(var) >= k: print(var[k - 1]) else: print(-1) ''' # 2. 강의 풀이 n , k = map(int, input().split()) cnt = 0 for i in range(1, n + 1): if n % i == 0: cnt += 1 # 약수의 개수 저장 if cnt == k: # k 번째 약수일 때, i 출력 print(i) break # 약수 출력 후, 반복문 탈출 # for ~ else 구문 : 반복문이 탈출되지 않고 정상적으로 모두 돌고 종료된 경우, else 구문 실행 else: # for 문이 정상 종료, 즉 약수의 개수가 K개 미만일 경우 실행 print(-1) '''
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
선생님 절실합니다..1 프로그래머스 level 2까지의 테스트 준비 과정
안녕하세요 파이썬 문제풀이 강의 를 듣고있는 학생입니다. 다름이 아니라 선생님 강의를 들으면서 저랑 잘맞다고 생각해 코딩테스트를 준비하고 있습니다. 그런데 제가 알고리즘 문제해결 능력이 매우 약한거 같습니다 ㅠ 문제풀이강의를들을떄에도 문제를 보면 잘 모르겠지만 해설하면서 따라하다보면 쉽게 익혀지는.? 그런느낌이 많이드네요.. 제가 프로그래머스 방식의 코딩테스트가 약5주정도남았는데 정말 꼭 통과하고싶어서 질문드립니다..! 알고리즘 강의를 파이썬으로 해주는 것은 따로 찍으시지 않으신거거 같은데 ㅠ 문제해결능력을 높일수 있는 강의 있으시면 적극 추천 부탁드리겠습니다.. 정말 간절히 원하고 있고 처음부터 시작하는 마음으로 하려고 합니다..! ( 프로그래머스 level 2정도 통과하고 싶습니다..) 문법도 다알고 있다고 생각했는데 다른 강의를 보면 부족한 점도 있는것 같더라구요..! 처으부터 시작하는 마음으로 강의 추천해주셔도 감사하빈다..!! 다른 인프런강의들도 살펴보고 강의 끊은 것도 있는데 저에게 잘 맞지 않은 느낌도 강해서ㅠ 선생님이 적극 추천해주시는 것이 있으면 들어볼의향이 있어 이렇게 질문드립니다..! 감사합니다!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
[2-9. 주사위 게임] 풀이 좀 봐주세요
import sys sys.stdin = open('2_9.txt', 'rt') def findDupValue(value): n_counter = {} for n in value: if n not in n_counter : n_counter[n] = 1 else : n_counter[n] += 1 if n_counter[n] == 2: return n N = int(input()) dice = [] cnt_dice = [] prize = [] for i in range(N): dice.append(list(map(int, input().split()))) cnt_dice.append(len(set(dice[i]))) for value, cnt in zip(dice, cnt_dice): if cnt == 1 : prize.append(10000 + (value[0]) * 1000) elif cnt == 2 : prize.append(1000 + (findDupValue(value)) * 100) else : prize.append(max(value) * 100) print(max(prize)) for문을 2개 쓴게 걸리는데 이런 코드는 어떤가요? 입력받을 때 주사위 값을 묶어서 배열로 저장하는 dice 리스트와 set으로 받아서 길이를 저장하는 cnt_dice 리스트를 사용했고 cnt 리스트가 2이면 findDupValue 함수에서 dictionary를 사용해서 다시 카운팅해 중복되는 숫자를 찾아 계산하는 코드입니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
출력오류.. (제가 푼 방식) 이유가 뭘까요...
n=int(input()) a=[list(map(int,input().split())) for _ in range(n)] cnt=0 for i in range(n): for j in range(n): if(a[i][j] > max(a[i-1][j], a[i][j-1], a[i+1][j], a[i][j+1])): cnt+=1 print(cnt) 이렇게 혼자 풀면서 작성했는데 cnt가 출력이 되지 않고 if문에서 오류가 납니다.. 이유가 뭔지 혹시 알 수 있을까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
플로이드 워셜 경로 탐색 질문
안녕하세요 선생님 코딩 테스트를 처음 준비 하는데 선생님의 강의를 몰랐다면 정말 큰 일 날 뻔 했습니다. 뛰어난 강의력 덕분에 기초 개념을 잡아가고 있습니다. 감사하단 말씀을 드리고 싶습니다. 다름이 아니라, 플로이드 워셜 알고리즘 강의를 듣고 직접 코드를 짜다가 경로 출력도 한번 해봐야겠다는 생각이 들었습니다. 소스 코드 폴더에 혹시 경로 출력 코드가 있을까 찾아봤는데 파일이 있긴 있는데 공백이었습니다. 공백으로 놔두신 이유가 있으실건데, 경로 출력까지는 불필요하다는 의도이신가요? 만일 불필요하다면, 굳이 하지 않겠습니다. 그래도, 코드 파일이 있다면 업로드 해주시면 감사하겠습니다. 그리고 마지막으로 여쭤보고 싶은게 백준은 알고리즘 대회 준비하는 친구들이 이용하는 사이트라 백준까지는 필요없고 릿코드를 풀어라는 글을 인터넷에서 본 적 있는데 어떻게 생각하시는지 궁금합니다. 감사합니다. 또, 추가적인 강의는 없는지도 궁금합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
T, input(), map(int, input().split() 관련 질문을 드리고 싶습니다.
안녕하세요 선생님, 수업 내용 중 이해가 안되는 부분이 있어서 질문 드리고 싶습니다. 크게는 아직 sys.stdin문 이하 내용이 이해가 안되는거 같은데요 수업 내용 중 제가 원래 데이터 분석 쪽으로 공부를 많이 해서 쥬피터 계열 쪽으로 파이썬을 많이 썼었는데, 한번 ipynb 파일로 열어서 int(input()을 쳐보니까 바로 이 부분에 들어갈 숫자를 물어보더라구요. py파일에선 그런 방식을 통하지 않고, 다만 input.txt 안에 있는 첫번째 줄 에서 T가 제시하게 되는 것으로 이해하게 되었는데... 어떻게 해서 파이썬이 int(input()) 코드 부분을 통해 input.text의 첫째줄인 숫자 2가 들어갈 수 있건지 잘 이해가 안됩니다. 또한 그로 인해 테스트 케이스가 2개로 정해질 수 있는 것도 잘 이해가 안됩니다.... 두번째 질문으로는 for t in range(T): n, s, e,k = map(int,input().split()) a = list(map(int, input().split())) print(a) 실행시 어떤 이유로 3번째 줄과 5번째 줄이 출력되는 것인지, 이 부분이 이해가 안됩니다.... 예시로 나온 txt 파일 내에서, 첫번째 줄에 나온 T=int(input())을 통해 2을 인식하고, 이를 통해 테스트 케이스를 2개로 인식하며 , 첫번째 케이스의 1번째 줄에서 n,s,e,k를 인식하고, 2번째 줄이 인식되는건지... 그렇다면 그게 어떻게 되는건지 잘 모르겠습니다..ㅠ n,s,e,k 변수가 문제 내에서 어떤 원리를 통해 input.txt 파일 내에서 넘어와서 각 변수 내로 들어가는지, 그리고 어떤 역할을 하는지는 이해를 했는데, 아직까지는 input.txt 파일이 어떤 식으로 코드 내로 들어가는지 잘 모르는 것 같습니다..😭
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
BFS 코드 질문
안녕하세요 강사님 BFS를 이용해서 답안을 작성해보았는데요, 어딘가가 잘못된 것 같은데 잘 모르겠네요ㅜㅜ 제가 작성한 코드는 다음과 같습니다. N = int(input()) apt = [] for _ in range(N): tmp = [] for i in input(): tmp.append(int(i)) apt.append(tmp) res = [] q = deque() for r in range(N): for c in range(N): if apt[r][c] == 1: cnt = 1 q.append((r,c)) while q: x, y = q.popleft() # (x,y) 좌표 방문 apt[x][y] = 0 # 방문한 곳은 0으로 변환 for i, j in ((x+1,y), (x,y+1), (x-1,y), (x,y-1)): if i >= 0 and i <= N-1 and j >= 0 and j <= N-1: # 좌표값이 제약조건을 만족할 경우 if apt[i][j] == 1: # 문제 조건을 만족하는지 확인 cnt += 1 q.append((i,j)) res.append(cnt) print(len(res)) for i in sorted(res): print(i) 위와 같이 작성했고 1번 input으로 답을 확인해보면 단지 갯수는 4개, 각 단지의 아파트 수는 3, 5, 10, 28이 나옵니다. 그런데 답은 3, 5, 10, 22인걸 보니 마지막 단지만 어딘가 잘못 카운트 한 것 같네요. 다른 input들도 확인해보니 다 제일 큰 단지 값만 잘못 나옵니다. 어떤 부분이 잘못된걸까요?ㅜㅜ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
pop, deque, del 함수에 대해서
안녕하세요. pop(0)을 사용할때 list를 땡기느라 비효율적이라고 하셨는데, del함수도 동일하게 비효율적인가요? 저는 del p[0] del p[-1] 요런식으로 del 함수로 앞뒤를 지웠거든요.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
최단 경로 확인
dis[6][6]에 도달할 수 있는 경우가 한가지가 아니라 여러갈래에서 도착 지점으로 갈 수 있는데 마지막으로 dis[6][6]에 들어간 값이 어떻게 최단 경로인건지 궁금합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
두번째식에서
sum+=i 는 왜 출력이 오류가나나요?? int를 꼭 씌워주어야하는 이유가 있나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
pop, insert 말고 swab을 이용한 구현
pop, insert 말고 swab을 이용한 구현을 했는데 혹시 성능적으로 더 비효율적일까요? 테스트 케이스 자체는 무리없이 수행했습니다. #3-8 곶감(모래시계) N = int(input()) arr = [list(map(int,input().split())) for _ in range(N)] M = int(input()) order = [list(map(int,input().split())) for _ in range(M)] def moveRight(x): for i in range(N-1): x[0], x[i+1] = x[i+1], x[0] return x def moveLeft(x): #print(x) p = N-1 for i in range(p): x[0], x[p-i] = x[p-i], x[0] return x #1. 명령 횟수만큼 타일 옮기기 for i in range(M): j = order[i][0]-1 if order[i][1] == 0: for _ in range(order[i][2]): arr[j] = moveLeft(arr[j]) else : for _ in range(order[i][2]): arr[j] = moveRight(arr[j]) ''' for i in range(N): print(arr[i]) ''' #2. 모래시계의 합 tot = 0 s, e = 0, N for i in range(N): #print(s,e) for j in range(s,e): tot += arr[i][j] if i<N//2 : s +=1 e -=1 else : s -=1 e +=1 print(tot)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
똑같이 작성했는데 답이 130이 나오네요.. 뭐가 틀린걸까요??
n,k=map(int,input().split()) a=list(map(int,input().split())) res=set() for i in range(n): for j in range(i+1,n): for k in range(j+1,n): res.add(a[i]+a[j]+a[k]) res=list(res) res.sort(reverse=True) print(res[k-1])
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이런 풀이는 어떤가요?
이런 풀이는 어떤가요? 앞에서도 res = res * 10 + int(x) 를 했었는데 자꾸 까먹고 잘 안들어오네요 이게ㅠㅠ 그러다보니 리스트도 만들고 for문도 한 번 더 사용했는데 이런식으로 코드를 짜면 안될까요? s = input() num_list = [] for i in s: if i.isdecimal(): num_list.append(i) num = '' for j in num_list: if int(j): num += j num = int(num) cnt = 0 for i in range(1, num+1): if num % i == 0: cnt += 1 print(num) print(cnt)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
강사님 갑자기 모든 코드에 대해서 exit_code_1 오류가 발생합니다.
원래 다 풀렸던 문제들도 다 exit_code_1이 발생합니다. 테스트상의 이유로 코드를 올릴테니 강사님 컴퓨터에서는 어떻게 동작하는지 알고 싶습니다. 섹션 2 의 8 뒤집은 소수 입니다. # import sys # sys.stdin = open("input.txt","rt") def reverse(x): strNum = str(x) return int(''.join(list(reversed(strNum)))) def isPrime(x): if x == 1: return False for i in range(2, x): if x % i == 0: return False return True N = int(input()) sourceArr = list(map(reverse, map(int, input().split()))) for a in sourceArr: if isPrime(a): print(a, end=" ")
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안전한 영역 정의에 대한 부분을 조금만 보완해주시면 좋겠습니다!
우선 질 좋은 강의에 감사 인사 드립니다. 다름이 아니라 해당 문제를 풀면서 '안전한 영역'이 무엇인지 정의하는 과정에서 제가 이해하는 데 시간이 오래걸렸는데요.. 문제에서 안전한영역을 아래와 같이 정의하는데.. "물에 잠기지 않는 안전한 영역이라 함은 물에 잠기지 않는 지점들이 위, 아래, 오른쪽 혹은 왼쪽으로 인접해 있으며 그 크기가 최대인 영역을 말한다." 이 문장에서 '그 크기가 최대인 영역' 표현 때문에 이해가 잘 안되었네용.. 이 표현보다 아래 표현으로 하면 더 쉽게 이해할 수 있지 않을까 합니다! 물론 문제를 이해하는 것도 문제 풀이하는 사람의 능력이자 몫이긴 하지만 되도록 이면 문제에 오해 소지는 없어야 하는 게 좋지 않을까 해서 조심스레 제안드립니다! 또 입력 예시로 주신 안전한 영역이 5개가 되었다는 것에 대해 5개의 영역을 표시해주시면 더 가시적으로 이해가 되지 않을까 하네요 ㅎㅎ "물에 잠기지 않는 안전한 영역이라 함은 물에 잠기지 않는 지점들이 위, 아래, 오른쪽 혹은 왼쪽으로 인접해 있으며 인접한 영역들의 크기가 최대인 영역을 말한다."