본문 바로가기
반응형

코딩8

보초법 종료조건을 검사하는 비용을 줄이는 방법! ex> 배열에서 특정 숫자를 검색할 경우 ('1' 검색 성공) 6 1 3 2 1 8 1 ('5' 검색 실패) 6 2 4 1 9 8 5 위 배열처럼 찾고자 하는 key를 배열의 맨 끝에 저장해준다. while True: if i == len(a): #검색 실패(끝까지 간 것을 의미) if a[i] == key: #검색 성공 i += 1 while True: if a[i] == key: break i+=1 return -1 if i == len(seq) else i #끝에서 발견했다면 보초이므로 못찾은 것 2021. 4. 15.
[파이썬🐍] 백준 10026 : 적록색약 후 아슬아슬하게 올릴 수 있겠다^^ 오늘은 토스 시험도 보고 오고 아주 바쁜 하루를 보내서 늦어졌다. 그래도 포스팅 잊지 않은 나 칭찬해! from collections import deque n = int(input()) grim = [list(input()) for _ in range(n)] visited = [[0]*n for _ in range(n)] dx = [-1,1,0,0] dy = [0,0,-1,1] cnt1,cnt2 = 0,0 q = deque() def bfs(i,j): q.append([i,j]) visited[i][j] = 1 while q: x,y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if (0 2021. 4. 10.
[파이썬🐍] 백준 2583 : 영역 구하기 영어 공부하느라 포스팅이 늦어졌다..ㅎ 음 여기서 주의해야 할 점은 cnt 초기화를 0값이 아닌 1로 해줘야 한다는 점?? 기억하자 나의 머리야!! 좀 오래걸렸지만 풀고보니 많이 어렵진 않았다. from collections import deque dx = [-1,1,0,0] dy = [0,0,-1,1] q = deque() def bfs(i,j): q.append([i,j]) matrix[i][j] = 1 cnt = 1 while q: x,y = q.popleft() for i in range(4): nx = x+dx[i] ny = y+dy[i] if (0 2021. 4. 9.
[파이썬🐍] 백준 11724 : 연결 요소의 개수 from sys import stdin n,m = map(int,stdin.readline().split()) matrix = [[0]*(n+1) for _ in range(n+1)] for i in range(m): a,b = map(int,stdin.readline().split()) matrix[a].append(b) matrix[b].append(a) visited = [0]*(n+1) def bfs(v): queue = [v] while queue: v = queue.pop(0) for i in matrix[v]: if visited[i] == 0: queue.append(i) visited[i] = 1 answer = 0 for i in range(1,n+1): if visited[i] == .. 2021. 4. 8.
반응형