본문 바로가기
[SW 역량테스트 기출][파이썬] 14499번 주사위 굴리기 삼성 역테 문제 테트로미노(?) 랑 유사한 부분이 있다. 삼성역테는 많은 경우의 수를 직접 해야하지만, 그것을 좌표화 시켜서 빠르게 처리하는 능력을 보는 문제들 있는거 같다. 주사위 굴리기 문제도 처음에 접근했을떄 그 상황마다 모두 고려하며 코드를 짜려고 했다. 하지만 그렇게 되면, 코드가 더러울 뿐만 아니라, 하다가 너무 많아서 포기하게 된다. 하지만 밑 처럼 다음 이동을 좌표화 시켜서 푼다면 편하다. 다른 문제들에서도 상황상 복잡해 보인다면 좌표화 시키는 것을 활용해보자! from collections import deque n,m, x,y,num = map(int,input().split()) map1 = [] for _ in range(n): a = list(map(int,input().split.. 2020. 5. 2.
[백준][파이썬] 3190 :뱀 [핵심] 1. 뱀의 형태를 deque로 저장하기 처음에 True false 맵으로 뱀의 상태를 저장하려 했으나, 뱀의 움직임을 고려하는것이 매우 복잡했다. FIFO 이러한 형태의 문제를 잘 기억할것 2. if 와 elif는 다르다. if와 elif의 차이를 정확히 기억하자(이것때매 오류 발생) -다시 검토하고 싶을 땐 if 두번 -다시 검토 아닐때 if , eilf 3. time을 언제줄지도 중요! from collections import deque num = int(input()) map1 = [[0 for i in range(num)] for j in range(num)] gogo = deque() capple = int(input()) # 사과의 수 #dchange = [] # 사과 저장 for .. 2020. 4. 28.
[딥러닝 실습] MNIST 손글씨 인식 실습하기 손글씨 이미지들을 가져와서 인식하는 실습이다. 코드의 구성은 다음과 같다. 1. MNIST 글씨들을 다운 후 저장되어 있는 파일을 내가 원하는 형식으로 저장하기 import gzip import numpy as np fnames =['train-images-idx3-ubyte.gz','train-labels-idx1-ubyte.gz','t10k-images-idx3-ubyte.gz','t10k-labels-idx1-ubyte.gz'] with gzip.open(fnames[0],'rb') as f: train_image = np.frombuffer(f.read (),np.uint8,offset =16) with gzip.open(fnames[1],'rb') as f: train_label = np.fro.. 2020. 4. 18.
[딥러닝 실습] 활성화 함수 연습(step, sigmoid ,relu function) #활성화 항수(step fuction, sigmoid 그려보기) import numpy as np import matplotlib.pyplot as plt def step_function(x): y = x>0 return y.astype(np.int) #astype(np.xx)는 xx형태로 타입을 바꿔주는것 def sigmoid(x): return 1/(1 + np.exp(-x)) def rulu(x): return np.maximum(0,x) x = np.arange(-5.0,5.0,0.01) y1 = step_function(x) y2 = sigmoid(x) plt.plot(x,y1,"r",label ="step function") plt.plot(x,y2,"b",label ="sigmoid func.. 2020. 4. 14.
[백준][파이썬] 벽 부수고 이동하기 2 import sys from collections import deque n,m,chance = map(int,sys.stdin.readline().split()) map1 =[] for i in range(n): tt = list(sys.stdin.readline()) map1.append(tt) dx = [0,0,-1,1] dy = [1,-1,0,0] def go(stack): while stack: x,y,dim = stack.popleft() for i in range(4): X = x+dx[i] Y = y+dy[i] if 0 2020. 4. 14.
[백준][파이썬] 2206 벽 부수고 이동하기 - 메모리초과 BFS문제이지만 기존의 문제들과는 조금의 차이가 있다. 벽을 뚫을수 있다는 것을 체크해줘야한다. 1. 벽 뚫기를 위해 [x,y, 횟수] 이런식으로 저장을 해준다. 2. visited를 활용할때 주의할 점은 벽 안뚫기 / 벽 뚫었을때 따로 방문여부를 체크해줘야한다 (만약에 체크해주지 않으면, 벽뚫 vs 안뚫 이 만났을 때 오류가 생긴다 3. 메모리초과를 해결하지 못했다..... import sys import collections n, m = map(int,sys.stdin.readline().split()) map1 = [list(map(int,[*input()])) for k in range(n)] def recu(stack): stack.append([0,0,0]) cnt = 1 while stack.. 2020. 4. 13.
[백준][파이썬] 16768 Mooyo Mooyo [핵심] 1. gravity함수 letsdel 함수 n, k = map(int,input().split()) map1 = [] for i in range(n): tt = list(input()) map1.append(tt) #str로 저장한거 기억하기 def gravity(map1): #중력 temto = [] temchange = [] for i in range(10): #열마다 tem = [] for j in range(n):#숫자저장 if map1[j][i] != "0": tem.append(map1[j][i]) for k in range(n-len(tem)): #뒤에 0채워주기 tem.insert(0,"0") temto.append(tem) for i in range(n): #행열 바꿔주기 tem.. 2020. 4. 8.
[백준][파이썬] 3055번 탈출 -BFS 기본적인 BFS 문제에서 조금의 변형이 들어간 문제다. 처음 활용된 것은 물이라는 장애물도 퍼져나간다는것이다. 물 -> 길 ->물 ->길을 while안에서 활용했다 -항상 특정지점의 주변 모두를 한턴에 체크(FALSE)할때는 for(len(stack))구조로 활용해 주면 된다. -추가적으로 최단거리를 세기 위해서는 다른 리스트를 하나 더 만들어 수를 파악해주면 된다 import sys import collections n,m = map(int,input().split()) lit =[] ans =0 for i in range(n): tt = list(sys.stdin.readline()) lit.append(tt) dx = [0,0,1,-1] dy = [1,-1,0,0] def bfs(start,wate.. 2020. 4. 7.
[백준][파이썬] 1759 암호만들기 시간초과가 안났다!!!!!1 일단, 핵심은 N과 M(2)번을 응용한것과 거의 동일하다. (N과 M 시리즈를 계속 반복해야겠다.) 숫자를 알파벳으로, 그리고 리턴하기전에 하나의 조건만 달아주면 끝! L , C = map(int,input().split()) lit = list(map(str,input().split())) s = "s" lit.sort() visited=[False]*C def per(depth,idx,stack,lit): if depth == L: count =0 for check in stack: if check in ["a",'e','i','o','u']: count +=1 if count > 0 and L-count > 1: print("".join(map(str,stack))) f.. 2020. 4. 6.