728x90
[프로그래머스] (Java) 배달 - 다익스트라 알고리즘 문제 설명N개의 마을로 이뤄진 나라는 아래의 특징을 지닌다.각 마을에는 1 ~ N까지 번호가 각각 하나씩 부여되어 있다.각 마을은 양방향 도로로 연결되어 있다.도로를 지날 때 소요되는 시간은 도로별로 다르다.1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 할 때, N개 마을 중에서 K시간 이하로 배달이 가능한 마을의 개수를 구하려고 한다. 예를 들어, N = 5, K = 3인 경우 위와 같은 마을이 있다면,1번 마을에 있는 음식점은 [1, 2, 4, 5] 번 마을까지 3 이하의 시간에 배달할 수 있다. 그러나 3번 마을은 3시간이 초과되므로 3번 마을에서는 주문을 받지 않아, 최종적으로 주문을 받을 수 있는 마을의 개수는 4개가 된다. ..
[프로그래머스] (JavaScript) 단어 변환 - BFS문제 설명두 개의 단어 begin, target 과 단어의 집합 words 가 있다. 아래의 규칙을 이용하여 begin 에서 target 으로 변환하는 가장 짧은 변환 과정을 찾으려 한다. 한 번에 한 개의 알파벳만 바꿀 수 있다.words 에 있는 단어로만 변환할 수 있다.예를 들어 begin 이 "hit", target 가 "cog", words 가 ["hot", "dot", "dog", "lot", "log", "cog"] 라면"hit" > "hot" > "dot" > "dog" > "cog" 와 같이 4단계를 거쳐 변환할 수 있음 두 개의 단어 begin, target 과 단어의 집합 words 가 매개변수로 주어질 때, 최소 몇 단계의 ..
[프로그래머스] (JavaScript) 네트워크 - DFS문제 설명네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미한다.예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어 있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers 가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하자.제한 사항컴퓨터의 개수 n 은 1 이상 200 이하인 자연수각 컴퓨터는 0부터 n - 1 인 정수로 표현i 번 컴퓨터와 j 번 컴퓨터..
[프로그래머스] (JavaScript) 타겟 넘버 - DFS문제 설명n개의 음이 아닌 정수들이 있다. 이 정수들을 순서를 바꾸지 않고 더하거나 빼서 타겟 넘버를 만드려 한다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 사용할 수 있다. - 1 + 1 + 1 + 1 + 1 = 3+ 1 - 1 + 1 + 1 + 1 = 3+ 1 + 1 - 1 + 1 + 1 = 3+ 1 + 1 + 1 - 1 + 1 = 3+ 1 + 1 + 1 + 1 - 1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target 이 매개변수로 주어질 때, 숫자를 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성하자.제한 사항주어지는 숫자의 개수..
[프로그래머스] (JavaScript) 피로도 - DFS문제 설명XX게임에 피로도 시스템(0 이상의 정수로 표현)이 있으며, 일정 피로도를 사용하여 던전을 탐험할 수 있다.이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있다."최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도이고,"소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타낸다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상이어야 하며, 탐험한 후에 피로도 20이 소모된다. 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러 개 있는데, 한 유저가 ..
06. 새로운 요소 추가하기다음 결과 화면을 참고하여 조건에 맞게 웹 문서를 작성하세요. 1. 행과 열의 개수를 입력한 값에 따라 표를 그리는 프로그램을 작성한다.2. table 요소 노드를 만든다.3. 입력한 행의 개수만큼 반복하면서 tr 요소 노드를 만든다.4. 입력한 열이 개수만큼 다음 과정을 반복한다. - td 요소 노드를 만든다. - 텍스트 노드를 만든다. - 텍스트 노드를 td 요소 노드의 자식 노드로 만든다. - td 요소 노드를 tr 요소 노드의 자식 노드로 만든다.5. tr 요소 노드를 table 요소 노드의 자식 노드로 만든다.6. table 요소 노드를 필요한 위치에 추가한다. 행 열 작성 결과 화면A. 해설1. 행과 ..
05. DOM 에 접근하기다음 결과 화면을 참고하여 조건에 맞게 웹 문서를 작성하세요. 1. 항목 앞 체크 표시를 누르면 항목 텍스트의 글자색이 바뀌며 가로줄이 그려지는 프로그램을 작성한다.2. 체크 표시 부분을 가져와 노드 리스트를 만든다. 요소를 이용한다.3. 노드 리스트에 있는 요소 전체를 반복하면서 click 이벤트가 발생하면 실행할 함수를 연결한다.4. 클릭이 발생한 요소에서 글자 색상 스타일을 회색(#CCC) 으로 바꾼다. 5. 클릭한 요소의 부모 노드에서 밑줄 스타일(text-decoration) 을 가로줄(line-through) 로 바꾼다. 할 일 목록 ✓할 일 1 ✓할 일 2 ✓할 일 3 ✓할 일 4 ..
04. 자바스크립트의 내장 객체를 사용한 문제 II다음 결과 화면을 참고하여 조건에 맞게 웹 문서를 작성하세요.(문서 안에 html 파일이 있다고 가정한다.) 1. [현재 시간 보기] 버튼을 누르면 현재 시간이 있는 html 파일이 팝업 창으로 나타나는 프로그램을 작성한다.2. 화면의 너비값에서 팝업 창의 너비값(400px)을 빼고 2로 나누면, 팝업 창이 시작할 left 가 된다.3. 화면의 높이값에서 팝업 창의 높이값(200px)을 빼고 2로 나누면, 팝업 창이 시작할 top 이 된다.4. 팝업 창의 좌표값(left, top)과 창의 크기 width, height 를 하나의 문자열로 저장한다.5. window.open( ) 메서드를 실행하여 팝업 창을 보여준다. 현재 시간 보기 결과 ..