목록전체 글 (229)
DevKim
www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 처음부터 반례까지 모두 찾아내고, 한번에 '성공!'을 받아내는걸 목표로 하고 있는 요즘. 문제 완벽하게 이해하고 반례를 찾아내는게 키포인트다. 꼼꼼하게 집중해서.! DFS로 한번에 해결~ from collections import deque que=deque() dx=[-1,1,0,0] dy=[0,0,-1,1] result=[] t=int(input()) for i in range(t): #테스트 케이스 cnt=0 #배추 ..
www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 정답률이 44%인걸보니 쉬운 문제이구나 생각했다. 토마토 문제를 풀고 푸니 너무 쉬웠다.! 10분만에 풀었다 n=int(input()) m=int(input()) graph={i:[] for i in range(1,n+1)} for i in range(m): x,y=map(int,input().split()) graph[x].append(y) graph[y].append(x) for key in graph: grap..
www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 제일 중요한 것은 문제를 이해하는 것 & 반례를 찾는 것 이라고 생각한다. 코드 짜기 전에 문제 완벽하게 이해하고 테스트 케이스 꼼꼼하게 찾아보기. from collections import deque que=deque() m,n=map(int,input().split()) graph=[] visited=[[] for i in range(n)] for i in range(n): for j in ..
www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net dfs로 해결 점점 감을 잡고있다.! def dfs(x,y): global cnt if x=n: return False if l_list[x][y]==1: l_list[x][y]=0 cnt+=1 dfs(x-1,y) #상 dfs(x+1,y) #하 dfs(x,y-1) #좌 dfs(x,y+1) #우 return (int(1),cnt) n=int(input()) l_list=[] result=[] # 단지내 집의 수 p..
www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net BFS로 해결. from collections import deque def dfs(x,y): queue=deque() queue.append((x,y)) while queue: x,y=queue.popleft() for i in range(4): nx=x+dx[i] ny=y+dy[i] if(nx=m): continue if l_list[nx][ny]==0: continue if l_list[nx][ny]==1: l_list[nx][ny]=l..
www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net # BFS from collections import deque def BFS(graph,start): for key in graph: graph[key].sort() visited=[0 for i in range(a)] queue=deque() queue.append(start) while queue: #큐 안에 원소가 있는 동안 k=queue.popleft() for i..
python으로 Linked List 구현을 해보았다. c언어로 구현하다가 파이썬으로 구현하려니 헷갈리고 어색하다 1. Link에 대한 구현 class Node: def __init__(self,data): self.data=data self.next=None head=Node(3) next_node=Node(5) head.next=next_node 2. 단순 연결리스트 - 단순 연결리스트의 경우 head가 필요하므로 생성, 길이를 계산하는 것보단 길이를 가지고 있는게 좋을 것 같아서 길이를 추가하였다 * 성능 : O(n) < O(1) 이기 때문 class Node: def __init__(self,data): self.data=data self.next=None #입력받은 객체의 문자열 버전을 반환 d..
0. 데이터의 보간 *보간(Interpolation)? - 주위의 값을 근거로 함수 값을 추정하는 것 1. 최근접 보간 - 가장 가까운 x의 값을 취하는 방법 2. 선형(linear) 보간 - 원래의 함수 값들을 직선으로 연결하고, 그 직선 위의 값을 선택하는 방법 * 삼각형의 닮은 꼴을 사용한다 3. 영상 보간 4X4 영상을 보간하여 8X8 영상을 생성하려고 할때!!!! ↓ ↓ (1) 최근접 보간 (2) 양선형 보간 - 원하는 점을 투향 시키고 직선의 방적식 구하고 그 선 위에 있음을 앎 (3) imresize 함수 imresize(A,K,'method') imresize(A,[m,n],'method') * K : 스케일링 계수 * [m,n] : 변경할 영상의 크기 * 'method' : 사용할 보간 ..