너비 우선 탐색 문제인 토마토를 풀고 제출을 했는데 시간초과가 떠버렸다 ... ! 그래서 오늘 포스팅은 시간초과를 해결한 방법에 대해 작성하고자한다 토마토 (골드 5) 1 초 256 MB 173851 67333 42811 36.338% 문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향..
전체 글
기술 블로그 입니다 ! * 댓글 환영 *백준은 javascript 를 따로 지원하고 있지 않아서 node.js로 풀어주었다. 사실 그래서 백준보다는 프로그래머스를 많이 풀었는데 BFS 문제를 더 연습해보고 싶어 백준문제를 풀게 되었다. 백준에서는 node.js 를 사용하면 되고 input 값만 잘 받아주면 문제 없이 문제를 풀 수 있었다 ! 유기농 배추 (실2) 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 512 MB 170400 68405 45827 37.997% 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡..
문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로..
A : DFS/BFS 가 뭔지 알아 ? Me : 그럼 ! DFS 는 그래프를 깊이 우선 탐색하는 것이고 , BFS는 그래프를 너비 우선 탐색하는거잖아 ! A: 자세히 설명해봐 뭔소린지 모르겠어 ! Me : DFS 는 특정 노드에서 시작해서 특정 노드와 연결된 모든 노드를 탐색한 후 다음 노드를 탐색하는거고 BFS는 특정 노드에서 시작해서 특정 노드와 인접한 노드들을 탐색한 후 그 다음 인접한 노드를 탐색하는거야 !! 그래프를 머리에 떠올려보면 DFS는 수직방향으로 BFS는 수평방향으로 진행한다고 생각해 나는 ! A: 오 ! 그럼 DFS/BFS 관련 문제는 다 풀수있겠네 ? Me: .... 아니 현재 나는 DFS 와 BFS의 개념은 알고 있지만 이를 이용한 문제는 잘 풀지 못한다. 문제를 읽고 어떤걸 사용..
현재 나는 티스토리를 이용하여 개발 블로그를 작성중이다. 요즘 코딩테스트를 준비하면서 프로그래머스 문제를 풀고 있는데 문제를 복사하는 과정에서 배경까지 복사되어 항상 불편함을 겪었었다. 집에서는 맥북을 사용하고 있어서 맥에서는 문제를 복사한 후 메모장에 다시 붙여놓고 다시 옮기는 과정을 겪으면 되긴 했지만 ,, 윈도우 환경에서는 이상하게 표가 깨진다던가 하는 문제가 있었다. 따라서 이번 포스팅은 프로그래머스 문제를 복붙했을 때 배경만 깔끔하게 없애는 방법에 대해 포스팅해보고자 한다 !! 흔한 문제 문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수..
문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의..
나는 요즘 코테를 준비하면서 머리가 매우 어지러운 상태다 .. 프로그래머스 레벨 0 문제는 모두 마스터 했고 레벨 1 ,2 단계 문제들을 풀어보고 있는 상태다. 완전 탐색 ,dfs , 스택 ,큐 ,,, 등 다양한 유형의 문제들을 접하게 되면서 일단 제로 베이스에서 시작하는 건 도저히 진전이 되지 않아 다른 사람들이 푼 코드들을 많이 뜯어보고 손으로 작성해보며 공부하는 중이다. 다양한 코드들을 보고 공부 하던 중 Array.from 이 매우 눈에 띄었다. 이상하게 낯선 느낌을 주는 문법이었다.. 코드의 상단에서 선언하면서 쓰이는데 왜이렇게 안외워지던지 이건 내가 블로그로 작성을 해야 완벽하게 이해하고 넘어 갈 수 있을 것 같아서 Array.from 에 대해 포스팅을 쓰게 되었다 . (개념에 대한 이해는 M..
문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "17" 3 "011" 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수 [11, ..
문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작..