프로그래밍 57

[Python] 백준 2164 카드 2

2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 데크를 사용해서 popleft()로 먼저 넣은 값을 빼주는 큐를 구현한다. 1) 큐에 1부터 N까지 순서대로 넣는다. 2) 제일 왼쪽 값을 버리고, 그 다음 값을 뒤에 넣는다. 3) 큐에 값이 1개 남을 때까지 반복한다. 전체코드 import sys import collections input = sys.stdin.readline N = int(input()) queue = collections.deque() for i in range(1, N + 1): que..

[Python] 백준 2667 단지번호붙이기

2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net DFS, BFS 둘중 아무거나 사용해도 상관 없을 것 같다. 1) 단지 배열 전체 탐색 후 1 발견시 DFS탐색 시작 2) DFS탐색 스택에서 꺼낸 인덱스 값들을 단지 배열에 넣고 조건문 시작 3) 단지 배열이 1이면 0으로 바꿔주고, 카운트, 상하좌우 인덱스 값 배열을 스택에 추가 4) 카운트 값을 result에 저장하고 단지 배열 전체 탐색 끝난 후 정렬 전체 코드 import sys input = sys.stdin.readline N = int(input()..

[Python] 백준 1012 유기농 배추

1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 1) 배추 배열 전체 탐색 후 1을 발견할 시 BFS 탐색 시작 2) BFS 탐색 큐에서 꺼낸 인덱스 값들을 배추 배열에 넣고 조건문 시작 3) 배추 배열이 1이면 큐에 인덱스 값 배열 삽입 전체 코드 import sys import collections input = sys.stdin.readline def bfs(graph: list, root: list): queue = collections.deque([root]) while queue: node = queue.pop..

[Python] BFS(너비 우선 탐색), DFS(깊이 우선 탐색)

백준 1260문제 BFS 데크 활용, 양쪽으로 가능 데크 : root에서 출발 -> 제일 왼쪽거 꺼냄(n) -> n이 첫 방문이면 추가(visited) -> n연결된 노드 추가(queue) 데크: [3]에서 출발 -> 3꺼냄 -> 3추가 -> 데크에 [1, 4] 추가 데크: [1, 4] 출발 -> 1꺼냄 -> 1추가 -> 데크에 [2, 3] 추가 데크: [4, 2, 3] 출발 -> 4꺼냄 -> 4추가 -> 데크에 [3, 5] 추가 데크: [2, 3, 3, 5] 출발 -> 2꺼냄 -> 2추가 -> 데크에 [1, 5] 추가 데크: [3, 3, 5, 1, 5] 출발 -> 3꺼냄 -> 3안추가(visited에 있음) -> 아무것도 안함 데크: [3, 5, 1, 5] 출발 -> 3꺼냄 -> 3안추가(visited..

[JavaScript] closure을 사용한 addEventListner for문

addEventListner을 반복해서 button에 달아야 할 때가 발생했는데, 엄청난 문제점을 발견했고 새로 알게된 사실을 정리하려고 한다. 112 추가한다. 이렇게 하면 되는데? 원하는 답은 아니지만, 문제가 없다는 걸 알 수 있다. var tmp00 = new Item(list); tmp00.btn.addEventListener('click', function() {clickButton(tmp00)}); items[0] = tmp00; var tmp01 = new Item(list); tmp01.btn.addEventListener('click', function() {clickButton(tmp01)}); items[1] = tmp01; var tmp02 = new Item(list); tmp0..

프로그래밍/ 2021.01.31