월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
봉우리 문제에서 0으로 감쌀때 이런식으로 하는건안되나요?
n = int(input()) # 5 l = [[0]*(n+2)]*(n+2) a = [list(map(int, input().split())) for _ in range(n)] ''' 5 3 7 2 3 3 7 1 6 1 7 2 5 3 4 4 3 6 4 1 8 7 3 5 2 ''' for i in range(n): for j in range(n): l[i+1][j+1]=a[i][j] 5x5로 받아준 2차원 행렬을 0으로 감싸고싶어서 for문돌려서 저런식으로했는데 값이 이상해서 for문안에서찍어보니 print(i, j, l[i+1][j+1], a[i][j], sep=', ') 0, 0, 0, 5 0, 1, 0, 3 0, 2, 0, 7 0, 3, 0, 2 0, 4, 0, 3 1, 0, 5, 3 1, 1, 3, 7 1, 2, 7, 1 1, 3, 2, 6 1, 4, 3, 1 2, 0, 3, 7 2, 1, 7, 2 2, 2, 1, 5 2, 3, 6, 3 2, 4, 1, 4 3, 0, 7, 4 3, 1, 2, 3 3, 2, 5, 6 3, 3, 3, 4 3, 4, 4, 1 4, 0, 4, 8 4, 1, 3, 7 4, 2, 6, 3 4, 3, 4, 5 4, 4, 1, 2 이런식으로 나오는데 원래 l = [[0]*(n+2)]*(n+2) 이런식으로 리스트 생성하면 칼럼 전부 다같이 변하나요???? 느낌으로는 주소 참조 형식때문인것같은데 리스트 l을 만들때 저런식으로만들면안되고 그냥 하나하나 0을찍어야할까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 풀이 방법에 대해서
안녕하세요, 항상 수업 잘 듣고 있습니다. 다름이 아니라 선생님께서 풀어주신 방법과 조금 다른 방법으로 풀어서 해결했습니다. 그런데 이를 도출해내는데까지 꽤 오래 걸렸습니다. 이런 방식으로 꽤 오래 걸리더라도 제 방법으로 한번 풀어보는게 더 좋을까요..? 한 문제당 오래 걸리다보니 이렇게 공부하는게 맞는지 궁금해서 질문 드려봅니다. 감사합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
제 코드에 대한 질문입니다.
중복되는 코드가 있지만, 저처럼 pop 이용해서 구현해도 괜찮을까요? n=int(input()) arr=list(map(int, input().split())) last=cnt=0 str="" while arr: # last 보다 둘 다 높을 경우 -> 작은거 선택 if arr[-1]>last and arr[0]>last: if arr[-1]<arr[0]: cnt+=1 last=arr[-1] arr.pop() str+="R" elif arr[-1]>arr[0]: cnt+=1 last=arr[0] arr.pop(0) str+="L" else: break # 왼쪽만 높은 경우 elif arr[-1]>last: cnt+=1 last=arr[-1] arr.pop() str+="R" #오른쪽만 높은 경우 elif arr[0]>last: cnt+=1 last=arr[0] arr.pop(0) str+="L" else: break print(cnt) print(str)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
List 변수 초기화 위치에 따라 정답이 달라지는 이유를 알고 싶습니다.
안녕하세요 아래와 같이 문제풀이를 했습니다. 하지만 tmp2 라는 리스트 변수 초기화 위치에 따라 정답이 달라집니다. 그 이유가 궁금합니다. 특히 마지막 입력값 3 1 4 이 들어갈때 취해지는 리스트 x 의 경우 3번째 행만 변경되어야 할 거 같은데, 2번째, 5번째 3번째 행의 리스트 값이 변경이 됩니다. 이유가 궁금합니다. ------------------------------------
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
아나그램 풀이
안녕하세요. 강의 정말 잘 듣고 있습니다. 이번 문제에 대하여 dictionary의 value에 해당 문자열에 대하여 count함수를 써서 다음과 같이 풀어봤는데 괜찮은건가요? import sys # sys.stdin = open('input.txt','rt') # 방법 1 a = input() dict_a = dict() for x in a: dict_a[x] = a.count(x) b = input() dict_b = dict() for x in b: dict_b[x] = b.count(x) if dict_a == dict_b: print('YES') else: print('NO')
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
reverse 구현 관련 질문
선생님 안녕하세요. 각 자연수를 str로 입력받고 reverse 함수에서 int(x[::-1])을 리턴하는 방법으로 접근하는 건 바람직하지 않은 방식일까요? time 모듈을 이용해서 시간을 측정해보니 문자열을 인덱싱하는 방법이 근소하게나마 빠르던데, 인풋에 따라 결과가 달라지거나 제가 놓친 부분이 있을까해서 질문드립니다. 항상 강의 잘 듣고 있습니다. 늦었지만 새해 복 많이 받으세요!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
제 코드도 한 번만 확인 부탁드립니다.
코드를 다음과 같이 짜봤는데 너무 무식하게 짠 거 같아요ㅠㅠ 테스트는 다 통과 했는데, 실제 테스트에서는 너무 비효율적일까요? import sys # sys.stdin = open('input.txt','rt') from collections import deque n = int(input()) a = list(map(int, input().split())) a = deque(a) # 방법 1 b= [] ans = '' cnt = 0 while True: if len(b) == 0: if a[0] < a[-1]: b.append(a.popleft()) cnt += 1 ans += 'L' else: b.append(a.pop()) cnt += 1 ans += 'R' else: if len(a) == 1: if a[0] == n: cnt += 1 ans += 'L' break else: break else: if a[0] > b[-1] and a[-1] > b[-1]: if a[0] < a[-1]: b.append(a.popleft()) cnt += 1 ans += 'L' else: b.append(a.pop()) cnt += 1 ans += 'R' elif a[0] > b[-1] and a[-1] < b[-1]: b.append(a.popleft()) cnt += 1 ans += 'L' elif a[0] < b[-1] and a[-1] > b[-1]: b.append(a.pop()) cnt += 1 ans += 'R' else: break print(cnt) print(ans)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
끝에 % 나오는 이유?...
n = int(input("number: ")) for i in range(1, n+1): if n % i == 0: print(i, end=' ') number: 20 1 2 4 5 10 20 % 이런식으로 끝에 %가 출력이 됩니다. end=' ' 를 쓰지않으면 %가 출력이 되지 않구요. 혹시 왜 이런지 이유가 있을까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
main 함수 사용 안하면
준비하는 기업이 프로그래머스 환경에서 코딩테스트를 보기에 이에 맞게 연습하려하는데 좀 헷갈리는 부분이 있네요. 1. solution 함수를 어떻게 지정해서 return은 어떻게 넘겨줘야할지 2. main 함수 사용안해도 된다고 하셨는데 사용안한다면 어떻게 코드를 구성해야할지.. 상세히 알려주시면 정말 감사하겠습니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
테스트케이스가 문제의 조건을 모두 반영하지 못하는 것 같습니다.
문제가 지금 세로줄은 고려를 하지 않아도 풀리네요.... 실수를 해서 알게된 거긴 한데 조금 더 케이스를 조정해 보는 것이 좋을 것 같습니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
solution() 함수 형태로 문제를 풀어야 할 때 질문입니다.
꼭 이 강의에 대한 질문만은 아니고요. 전체적인 DFS 문제에 관한 질문입니다. 강의에서는 인풋을 받아서 배열이나 변수에 저장하고 DFS까지 호출하는 것이 메인 모듈 안에서 이루어져서 전역 변수처럼 DFS() 같은 함수 내에서도 해당 변수에 접근할 수 있는데요. (제가 알기로 메인 모듈은 함수가 아니라고 알고 있습니다) 프로그래머스 등의 사이트에서는 해답을 return하는 solution 함수 형태로 풀게 되어 있습니다. 문제의 조건이 되는 배열 등도 input을 받는 게 아니라 solution() 함수의 매개변수로 들어 있어서 지역변수가 되는데요. 이런 경우에는 어떤 방식으로 문제를 풀어야 할지 질문 드립니다. 제 생각에는 1)매개변수로 주어진 데이터까지 포함해서 전역변수로 다시 선언해 주거나, 2)해당 데이터를 모두 DFS 함수의 매개변수로 전달하는 정도의 방식이 떠오르는데요. 1번은 같은 데이터를 다시 전역변수로 선언하는 게 다소 주먹구구 같은 느낌이 들고, 2번 방식으로 하면 매개변수가 5개도 넘어가는 경우가 생겨서... 혹 다른 방식이 있을까요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
격자판 최대합
import sys sys.stdin = open('input.txt', 'rt') n = int(input()) mat = [list(map(int, input().split())) for _ in range(n)] print(mat) print(mat[0]) print(mat[:][0]) tot = -2147000000 # 행의 합 비교 for i in range(n): tmp = sum(mat[i]) if tmp > tot: tot = tmp # 열의 합 비교 for i in range(n): tmp = sum(mat[:][i]) if tmp > tot: tot = tmp # 대각선의 합 비교 tmp = 0 for i in range(n): tmp += mat[i][i] if tmp > tot: tot = tmp tmp = 0 for i in range(n): tmp += mat[i][n-1-i] if tmp > tot: tot = tmp print(tot) 위와 같이 코드를 작성해봤는데 5번 문제만 틀렸다고 나왔습니다. 그래서 원인을 찾아봤는데 행의 합을 구하기 위해 사용한 mat[i]와 열의 합을 구하기 위해 사용한 mat[:][i]의 값이 같다고 나왔습니다. mat[:][i]를 사용하면 i열의 수들을 반환하는 것이 아닌지 궁금합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
res..?
정확히 res가 왜 필요한지 어떤 역할을 하는건지 잘 모르겠어요 ㅜㅜ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
isPrime() 함수 이렇게 작성해도 될까요?
안녕하세요. 강사님. 강의 잘보고 있습니다. isPrime 함수 만들때 강사님이랑 다르게 작성을 했는데 이렇게 작성해도 되는지 여쭙고 싶습니다. def isPrime(x): if x == 1: return False else: cnt = 0 for i in range(2,x+1): if x % i == 0: cnt += 1 if cnt == 1: return True
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
질문
안녕하세요! tmp = 'AZ' print(ord(tmp)) 하면 오류가 발생하는데 그 이유는 무엇인가요? tmp = 'A' print(ord(tmp)) 했을때는 65로 제대로 출력됐습니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
정렬과 튜플
그리디 알고리즘 문제들에서 정렬을 하기 위해서 리스트 대신 튜플을 사용하는 이유가 있나요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
리스트에 안넣고 바로 출력해도되겠지요?
어차피 리스트에담고 다시 for문으로 처음부터 출력할바에 애초에 따로 리스트에 안담고 바로 출력하게끔 했는데 문제 없겠죠? 그리고 비쥬얼 스튜디오2017 쓰고있는데 위와 같은 메시지가 계속 뜨는데 혹시 해결방법 알 수 있을까요? 인터넷에 검색해도 잘 모르겠습니다..
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
공백 출력 관련 질문있습니다.
end = ' '로 출력하게되면 마지막 숫자 출력이후 스페이스 바가 하나 생기는데 실제 코딩테스트에서 이러한 공백도 깐깐하게 채점하나요? 만약에 마지막에는 공백을 출력하지 않아야 된다면 어떤 방식이 있을까요..?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
프로그래머스 레벨2까지 대비
안녕하세요 ! 강사님! 프로그래머스 코딩테스트 대비중에있습니다 동적 부분을 뺀 나머지 부분 강의를 다듣고 풀 수 있다면 바로 프로그래머스 문제를 풀어봐도 괜찮을까요..?(level 2기준) 프로그래머스 문제에 잘 적용이 되지 않아 이렇게 문의드립니다 감사합니다!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
카드 역배치(정올 기출)
- 카드 역배치(정올 기출)문제 풀이 질문----- 예제는 통과되었는데... 어디가 틀렸는지 부탁드립니다. 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)