월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
값 받아오기 질문
안녕하세요, 선생님께서 이 문제와 같이 한 줄에 하나씩 있는 값을 받아오실 때 Line=[] for _ in range(n): tmp=int(input()) Line.append(tmp) 위와 같은 방으로 받아오시는데, 저는 x=[int(input()) for _ in range(n)] 이 한 줄로 처리하고 있습니다. 혹시 이렇게 하면 데이터 받아오는 데 있어 시간 지연이 크다던지, 자료가 어그러질 수 있다던지 하는 위험성이 있는 건가요? 지금까지 제가 시도해보기로는 문제 없었는데 왜 더 길게 쓰시는지 궁금합니다.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
최소값 초기화 질문
안녕하세요, 강의에서 정수형에서 나올 수 있는 최대 값인 21470000을 min 초기화로 설정 해 주셨는데, 지난 [선수학습] 강의에서는 최소값 초기화를 float("inf") 와 같이 해주셨습니다. 두 경우 int형, float 형이라는 차이 이외에 쓰임새의 차이가 있나요? (어떤 경우에는 어떤 방식을 선호한다든지 하는 거요!) 어떤 것이 더 깔끔한 코딩인가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 강사님
if __name__ == "__main__": 이부분이 이해가 안갑니다 ㅠㅠ
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
Visual Studio 질문, 입력값 질문
안녕하세요, 두 가지 질문이 있습니다. 1. 그냥 Python Shell 로 보는 것보다 Visual studio 꼭 설치하는 것이 낫나요? 현재 Visual Studio code 가 있는데 그걸로 사용해도 무방한가요? 2. 문제의 입력 설명을 보면 N은 1 이상 10,000이하라거나 K는 1 이상 N 이하라는 조건들이 있습니다. 이 조건에 대한 코딩은 필요 없나요? 실제 코딩 테스트에서도 이런 조건이 나왔을 시 굳이 코딩할 필요가 없는 것인가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
아나그램 문제 에서 코드 질문입니다
강사님이 푸신거랑 조금은 다르게 값 으로 접근하여 출력했는데 혹시 논리적으로 문제가 되나요? a = input() b = input() d = dict() for i in a: d[i] = d.get(i,0)+1 for i in b: d[i] = d.get(i,0)-1 for val in d.values(): #값으로 접근 if val >= 1: print("No") break else: print("Yes")
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
github 코드
안녕하세요 강사님! 우선 강사님의 강의 덕분에 알고리즘 실력이 향상되어서 감사하다는 말씀을 드리고 싶습니다. 제가 여쭤보고 싶은 것은 강사님의 문제를 풀며 작성한 코드와 문제를 github에 올려도 되는지 궁금합니다. 올리는 목적은 기록을 남기기 위함이고 절대 다른 목적은 없습니다!
- 해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
답안 소스코드에 오류가 있는 것 같습니다.
삭제된 글입니다
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 강사님
강의보기전에 코드를 먼저 짜봤는데 강사님처럼 for문으로 하는게 더 좋은가요? import sys sys.stdin = open("input.txt","r") from collections import deque n, m = map(int, input().split()) cnt = 0 qList = list(range(1,n+1)) qList = deque(qList) while True: if len(qList)==1: break if cnt == m-1: qList.popleft() cnt = 0 else: qList.append(qList.popleft()) cnt += 1 print(qList[0])
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
코드의 결과가 다르게 나옵니다!(답변을 달아주세요)
import sys sys.stdin=open("input.txt", "r") a=list(range(21)) for _ in range(10): s, e=map(int, input().split()) for i in range((e-s+1)//2): a[s+i], a[e-i]=a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' ')
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
테스트 케이스를 하나 더 만들어봤습니다
선생님 안녕하세요. 수업을 듣던 중 궁금한 것이 생겨 질문 드립니다. 필수과목 순서가 ABC라고 했을 때 CABC 이렇게 과목을 설계했다면 이것은 NO이어야 하는건가요?
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
창고정리 문제에서 코드 질문있습니다.
항상 강의 잘보고있습니다 감사합니다 . 강의보기전에 제가 두가지 방법으로 먼저 풀어봣는데 코드에서 논리적인 오류가 어디인지 궁금합니다. import sys sys.stdin = open("input.txt","r") n = int(input()) aList = list(map(int, input().split())) m = int(input()) #방법1: 리스트내부적으로 돌면서 max값와 min값을 찾아 -1, +1 하는식으로 풀이 답은 0 나왔습니다 for i in range(m): for x in range(len(aList)): if aList[x]==max(aList): aList[x] -= 1 if aList[x]==min(aList): aList[x] += 1 print(max(aList)-min(aList)) #방법2: 안에서 정렬하고 aList[n-1] 이나 aList[-1] 이나 같다고 생각하는데 이렇게 풀경우 답이 18나옵니다 ㅜㅜ for i in range(m): aList.sort() aList[-1] -= 1 aList[0] +=1 print(aList[-1]-aList[0])
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
sys.stdin=open("input.txt", "rt")를 사용할떄 제대로 작동하지 않습니다
이대로 작성해서 한번 해봤는데 에러가 나면서 작동하지 않습니다 전체 코드는 이렇습니다 import sys sys.stdin=open("input.txt", "rt") T=int(input()) for i in range(T): n, s, e, k=map(int, input().split()) a=list(map(int, input().split())) print(a)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
range 함수
안녕하세요. range 함수의 의미 설명 다시한번 부탁드려도 될까요? range(10)은 왜 0부터 9까지 range(1,11)은 왜 1부터 10까지 프린트 되는건가요? 감사합니다. 좋은 하루 보내세요.
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
역수열
안녕하세요 강사님 이중 for문 안에 if elif 문 이 있는데요.먼저 a list 에 있는 순차적인 숫자들은 seq list 에서 0이 필요한 개수이고 , elif 문에서 a[i]가 0이 되는 시점인 seq[j]를 찾는거라고 이해 했습니다. 이과정을 거치면 a[i]가 0이되는 시점이 되면서 if문에 걸리게 되고 if문에서 a[i]가 0일때와 a[i]가 0인 시점의 seq[j]가 0이라면 seq[j]에 i+1값을 넣는다라고 이해했는데 제가 이해한게 맞을까요? 헷갈려서 질문드립니다!
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 격자판 회문수에서 질문있습니다.
항상 강의 잘듣고있습니다. 격자판 회문수 문제를 강의 듣기전에 혼자 풀어봤는데 마지막 for문(세로로 확인하는 for문) 에서 5자리숫자랑 뒤집어서 5자리 배열 이렇게 비교해서 맞으면 cnt를 증가하려고 rev함수를 만들었는데 왜 마지막 for문에서 rev함수가 적용이 안되는지 궁금합니다 ㅠㅠ디버깅돌려봐도 revTmp = rev(tmp) 했을때 tmp에 있는배열이 뒤집어지면서 revTmp로 들어가야하는데 뒤집어 지지않고 그대로 들어갑니다 어디가 문제인가요..?ㅠㅠ 코드 중간에 print()문은 제대로 찍혔나 확인용으로 넣어본거입니다! import sys sys.stdin = open("input.txt","r") def rev(rev): for i in range(len(rev)//2): rev[i],rev[-i-1] = rev[-i-1],rev[i] return rev aList = [list(map(int, input().split()))for _ in range(7)] cnt = 0 for i in range(7): for x in range(3): if aList[i][x:x+5] == rev(aList[i][x:x+5]): <====여기서는 잘 뒤집어 졌는데 cnt += 1 print(aList[i][x:x+5]) else: continue for i in range(7): for x in range(3): tmp = [] for y in range(5): tmp.append(aList[y+x][i]) revTmp = rev(tmp) <=================이부분입니다! 여기는 뒤집어 지지않고 그대로 들어가요 ㅠㅠ if tmp == revTmp: cnt +=1 print(tmp) print(cnt)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
중복순열 코드질문
안녕하세요, 강의 잘 듣고 있습니다! 혼자서 코드를 짜볼때 저는 아래와 같이 짰는데 다시 재귀로 돌아가지 못하고 1 1 만 출력하고 종료해 버리더라구요. 소스에서 어디가 문제인지 정확히 찾을 수 없어, 뭐가 문제인지 문의드립니다. def DFS(L): global cnt if L==m+1: for x in a: print(x, end=' ') print() cnt+=1 else: for i in range(1, n+1): a.append(i) DFS(L+1) a.pop(-1) if __name__=="__main__": n, m=map(int, input().split()) a=list() cnt=0 DFS(0) print(cnt)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
질문드립니다.
안녕하세요. 격자판 최대합 알고리즘을 구현해 보았는데요. 열,행,대각선 합을 구하는 리스트를 따로 만들고, max함수를 사용하여 구현을 하였습니다. 제가 아직 메모리와 시간복잡도에 대해 잘 몰라서 질문드립니다. 아래와 같이 구현하게 되면 메모리와 시간 측면에서 비효율적일까요?.. 확인 부탁드리겠습니다. 감사합니다. n = int(input()) numlist = [list(map(int, input().split())) for _ in range(n)] sumlist = [0]*(2*n+2) for i in range(n): for j in range(n): num = numlist[i][j] sumlist[i]+=num sumlist[j+n]+=num if i==j: sumlist[-2]+=num elif i+j == n-1: sumlist[-1]+=num maxSum = max(sumlist) print(maxSum)
- 미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
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 이런경우의수밖에 없지않나요? *항상 좋은강의 잘듣고있습니다 감사합니다.