본문 바로가기
[백준][파이썬] 1593 문자 해독 [핵심] 순열 내장함수나, 리스트에 모든 순열을 저장하게 되면 메모리 초과가 발생한다. 아스키코드를 활용 import sys n,m = map(int,sys.stdin.readline().split()) g = input() s = input() glit =[0]*52 slit =[0]*52 for i in range(n): #glit에 알파벳에 맞게 숫자 카운팅 if ord("a") 2020. 3. 10.
[백준][파이썬] #10870 피보나치수 5 (재귀함수 활용) [핵심] 다른 방법으로도 더 간단하게 구할 수 있다. 하지만, 재귀함수를 연습하기 위하여 재귀함수로 코드를 작성했다. 재귀함수 코드를 짤때 중요한점은 특정 변수가 되었을 때 재귀함수가 멈추고 출력 혹은 다른 실행이 되어야 하는것이다. While문과의 비슷한점이 조금은 있는것 같다. 쉬운 예제로 재귀함수를 푸는 연습을 해야 나중에 어려운문제를 재귀함수로 쉽게 풀 수 있을것같다. num = int(input()) lit = [0,1] def recur(time,index): cnt = index number = lit[-1]+lit[-2] lit.append(number) if time-2 == cnt: print(lit[-1]) else: recur(num,cnt+1) if num == 0: print(0.. 2020. 3. 10.
[백준] #15650 N과 M(2) [핵심] 메모리를 생각하는 것이 핵심이다. 내장된 모듈을 활용하여 순열이나 조합을 리스트에 저장하면 대부분의 경우 메모리 초과가 된다. 다음와 같이 재귀함수를 활용하여 바로바로 출력을 하는 연습을 하자! (메모리가 작을 것이다.) import sys N,M = map(int,sys.stdin.readline().split()) hi=[False]*N test = [] def solve(depth,idx,N,M): if depth == M: print(test) for i in range(idx,N): if hi[i] == 0: test.append(i+1) hi[i] = True solve(depth+1,i+1,N,M) hi[i] = False test.pop() solve(0,0,N,M) 2020. 3. 10.
[백준] #1931 회의실 배정 [핵심] 그리디 알고리즘 최선의 선택을 하기전에 중요한것은 최선의 선택만 했을 때 답이 나오게 만들어야 한다는 것이다. sort에 key를 설정하여 x[1],x[0] 순으로 정렬을 하고 배정된 회의실의 수를 세는것이 왜 가장 많은 회의실을 배정하는 개수를 세는것인지 이해하는것이 중요하다. import sys num = int(input()) numlist = [] for i in range(num): a,b = map(int,sys.stdin.readline().split()) numlist.append([a,b]) numlist.sort(key = lambda x :[x[1],x[0]]) start = 0 count =0 for i in numlist: if i[0] >= start: start = i.. 2020. 3. 10.
[파이썬] 이차원 리스트 한번에 입력받기 [ ] 안에 for문을 두번 활용하면 이차원리스트를 한번에 생성할 수 있다. case = int(input()) num = [[int(x) for x in input().split()] for y in range(case)] print(num) 2020. 3. 10.
[백준] #2869번 달팽이는 올라가고 싶다 # while문을 이용하여 풀면 시간초과 난다 # V-b를 통하여 밤이되기전 낮에 완주를 하는 경우를 생각해줘야 한다. import sys a,b,v = map(int,sys.stdin.readline().split()) tem = (v-b) / (a-b) if tem == int(tem): print(int(tem)) else: print(int(tem)+1) 2020. 3. 10.
ML lec 01 기본적인 Machine Learning 의 정의와 용어 설명 [1] supervised VS unsupervised learning? 한국어로는 지도학습 VS 비지도 학습이라고 하며, supervised learning은 Label이 정해져있는 데이터셋을 학습시키는 것을 말한다. 예를 들면 "고양이" 혹은 "강아지" 라는 Label이 정해져있는 사진들을 학습하는 것을 말한다. 반면, 정확히 무엇인지는 모르지만 유사한(단어,사진 등)것 끼리 모아서 학습하는 것을 unsupervised learing 이라고 한다. 이 강좌에서는 주로 Supervised learning(지도학습)에 대하여 배울것이다. [2] Training data set? 지도에 필요한 데이터들이다. 이러한 데이터셋이 있어여 지도학습도 가능하다. [3] 지도 학습의 종류(Regression VS b.. 2020. 3. 4.
공부하고 복습을 하기 위해 만들었습니다. 모두를 위한 딥러닝 강좌 시즌1 By sung kim (Youtube)을 보신다면 블로그를 통해 복습하세요~ 2020. 3. 4.
기본 문법 복습합시다 파이썬 hello world! hi my 2020. 3. 4.