본문 바로가기
728x90
728x90

문제풀이/자료구조,알고리즘5

아일랜드 (BFS) https://kong-dev.tistory.com/58 아일랜드(DFS) 문제설명 [1, 1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 1, 1, 0], [0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 1], [1, 1, 0, 1, 1, 0, 0], [1, 0, 0, 0, 1, 0, 0], [1, 0, 1, 0, 1, 0, 0], 1은 섬이고 0은 바다다. 섬은.. kong-dev.tistory.com 같은 문제다. 이번엔 BFS로 풀어야 한다. DFS로 하는건 못맞췄는데, BFS는 맞췄다. function solution(board) { let island = 0; const xmoving = [0, 1, 1, 1, 0, -1, -1, -1]; const ymov.. 2021. 12. 5.
아일랜드(DFS) 문제설명 [1, 1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 1, 1, 0], [0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 1], [1, 1, 0, 1, 1, 0, 0], [1, 0, 0, 0, 1, 0, 0], [1, 0, 1, 0, 1, 0, 0], 1은 섬이고 0은 바다다. 섬은 상하좌우 그리고 대각선으로도 연결 돼 있고 이어진 섬은 하나로 친다. 섬의 갯수를 구하라 접근방법 설명이 너무 대충인가. DFS를 이용해서 풀어야 한다. 우선 이중for 문을 이용해서 1을 찾는다. 1을 찾으면 카운트를 하고, DFS함수를 호출한다. DFS함수 내부는 1을 만난 지점을 0으로 바꾸고 팔방으로 1이 있는지 확인한다. 1이 발견되면 그곳으로 이동해서 반복 functio.. 2021. 12. 5.
송아지 찾기!(BFS) 문제설명 철수가 강아지를 잃어버렸다. 현수는 스카이콩콩(...)을 타고 송아지를 찾으러 갈건데 점프 한번에 뒤로한칸 또는 앞으로 한칸 또는 앞으로 5칸을 갈 수 있다. 현수의 위치를 h칸 송아지의 위치를 c칸 라고 했을 때 h칸에서 c칸으로 가기 위한 최소 점프 횟수를 구하는 함수를 완성해라. 단, h 와 c는 1과 10000사이의 정수 이다. ex)h=5 c=14 result=3 접근방법 ㅎ 문제 한번 괴랄하네 스카이콩콩이라니 ㅎㅎ 일단 트리를 만들어서 어떻게 코드를 짤지 생각을 해봤다. ㅎ...그림이 중요한게 아니니까...ㅎ 대충 이런 식으로 생긴 트리다 루트노드 h 인 5로 시작하고 -1, +1, +5 세가지 경우로 자식노드 생기고 14를 찾을 때 까지 반복 한다는 거다. 최단 거리를 찾는 문제니까.. 2021. 12. 3.
미로탐색 문제설명 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0은 지나 갈 수 있는 통로. 1은 지나 갈 수 없는 벽. 0,0 부터 시작해서 7,7로 도착하는 경우의 수를 구하는 함수를 완성하세요. function solution(board) { return answer; } let arr = [ [0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 1, 0, 0, 0], [1, 1, 0, 1, 0, 1, 1], [1, 1, 0, 0, 0, 0, 1], [1, 1, 0, 1, 1, 0, 0], [1, 0, 0, 0, 0, 0, 0], ].. 2021. 12. 3.
preorder/ inorder/ postorder 구현 어디 나와있는 건 아니고 어제 우리집 시니어랑 preorder랑 inorder랑 postorder 코드로 구현해보기했다. 헿 맴에드는 그림이 없어서 직접그림 노드안에 저렇게 값이 할당 되어 있을 때, 저 순서대로 순회 하는거다. function solution(tree) { const answer = []; function pre(index) { answer.push(tree[index]); const leftIndex = 2 * index; const rightIndex = 2 * index + 1; if (leftIndex < tree.length) pre(leftIndex); if (rightIndex < tree.length) pre(rightIndex); } pre(1); return answe.. 2021. 12. 1.
728x90
728x90