본문 바로가기
반응형

Algorithm/문제풀이63

[백준] 7576번 : 토마토 (골드Ⅴ) by node.js ▷ 문제 : 7576번 - 토마토 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net ▷ 해결 날짜 : 2022.04.07 ▷ 소요 시간 : 1시간 30분 ▷ 풀이 과정 : 처음으로 풀어보는 골드 난이도다. 문제를 보면 상자의 크기가 주어지고 토마토의 위치가 주어지는데 1의 위치부터 상하좌우 번져가면서 토마토를 익혀 총 몇일이 걸리는지 확인하는 문제이다. 결국 다른 문제와 마찬가지로 1부터 시작해서 전체를 쭉 탐색하면 되는것인데, 시간 초과에서 걸려버렸다. 그래서 일단 시간초과에 걸릴만한 녀석들과.. 2022. 4. 7.
[백준] 2178번 : 미로 탐색 (실버Ⅰ) by node.js ▷ 문제 : 2178번 - 미로 탐색 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net ▷ 해결 날짜 : 2022.04.07 ▷ 소요 시간 : 50분 ▷ 풀이 과정 : 이것 역시 [0,0] 부터 상하좌우를 탐색해 나가면서 [N,M] 까지의 최단거리를 구하는 문제이다. 우선 고민이 필요한 부분은 탐색을 둘째치고 어떻게 거리를 구하고 담아둘건지에 대해 방향을 잡아야했다. 그래서 그냥 간단하게 탐색용 배열 하나, 거리 저장용 배열 하나 두개를 만들고 어차피 한칸씩 움직이며 탐색을 하기 때문에 이전에 위치한 값의 + 1 을 해주면서 저장을 해 나가면.. 2022. 4. 7.
[백준] 2667번 : 단지번호붙이기 (실버Ⅰ) by node.js ▷ 문제 : 2667번 - 단지지번호붙이기 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net ▷ 해결 날짜 : 2022.04.07 ▷ 소요 시간 : 30분 ▷ 풀이 과정 : 1012번 - 유기농 배추 문제와 매우 유사해서 그냥 유사하게 풀어버렸다. 1로 이루어진 집단의 개수와, 집단 안에 존재하는 1의 개수를 오름차순으로 출력하는 문제였다. 유기농 배추 문제와 유사한 방향으로 풀었고 이 문제에 맞게 조금 수정을 해서 사용하였다. ▷ 구현 let fs = require('fs'); let input = fs.rea.. 2022. 4. 7.
[백준] 1012번 : 유기농 배추 (실버Ⅱ) by node.js ▷ 문제 :1012번 : 유기농 배추 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net ▷ 해결 날짜 : 2022.04.06 ▷ 소요 시간 : 2시간 ▷ 풀이 과정 : 주어지는 값은 테스트 케이스, 배추밭의 가로, 세로의 길이 그리고 배추가 심어져 있는 위치가 주어진다. 문제를 보면 이미지가 첨부되어 있어 쉽게 이해할 수 있도록 도움을 주는데, 결국 인접하고 있는 배추묶음을 하나로 보고 그 묶음의 개수를 세는 것이다. (문제는 배추흰지렁이의 개수를 출력하는 것이지만...) 우선 풀이 순서의 큰 틀을 다음과 같이 정하고 구현.. 2022. 4. 6.
[백준] 2606번 : 바이러스 (실버Ⅲ) by node.js ▷ 문제 :2606번 : 바이러스 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net ▷ 해결 날짜 : 2022.04.06 ▷ 소요 시간 : 20분 ▷ 풀이 과정 : 1번 노드부터 시작해서 바이러스가 전염되어 연결되어있는 모든 노드의 개수를 구하는 문제였다. BFS/DFS 뭘 써도 답이 나올 수 있는 문제인 것 같다. 풀이과정은 저번에 푼 그래프 탐색 알고리즘 기초 문제인 DFS와 BFS 문제와 동일하다. 이 문제도 그냥 기본문제인 것 같다. ▷ 구현 let fs = require('fs'); let input = f.. 2022. 4. 6.
[백준] 1260번 : DFS와 BFS (실버Ⅱ) by node.js ▷ 문제 :1260번 : DFS와 BFS 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net ▷ 해결 날짜 : 2022.04.04 ▷ 소요 시간 : 2시간 30분 ▷ 풀이 과정 : 문제는 너무나도 기본 문제라 아 그냥 DFS와 BFS를 사용해서 풀어보라는구나 싶을 정도의 내용이었다. 이 문제에서 중요한 건 기본적인 DFS와 BFS의 개념이고 입력으로 주어지는 간선은 양방향이다. 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문한다. 어떤 두 정점 사.. 2022. 4. 4.
[백준] 17427번 : 약수의 합 2 (실버Ⅱ) by node.js ▷ 문제 :17427번 : 약수의 합 2 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net ▷ 해결 날짜 : 2022.04.01 ▷ 소요 시간 : 1시간 ▷ 풀이 과정 : 문제는 그렇게 어렵지 않다. 주어진 숫자만큼 반복해서 돌면서 각 숫자의 약수의 합을 전부 더해준 값을 출력해주면 되는 문제였다. 그래서 문제는 5분 만에 풀었는데... let fs = require('fs'); let input = fs.readFileSync('./text.txt')... 2022. 4. 1.
[프로그래머스] 순위 검색(LV.2) by javascript - 2021 KAKAO BLIND RECRUITMENT ▷ 문제 : 2021 KAKAO BLIND RECRUITMENT - 순위 검색 LV. 2 { const condition = e.split(' ').filter(e => e != '-' && e != 'and'); const score = Number(condition.splice(-1)); return info.filter(v1 => condition.every(v2 => v1.includes(v2)) && v1.match(/\d/g).join('') >= score).length; }); } 아니나 다를까 "효율성 테스트" 문제였다. 당연히 효율성 부분에서 0점이 나와서 통과를 하지 못했는데, 몇 시간을 개선하다가 이렇게 풀면 도저히 안될 거 같아 몇몇 글을 통해 도움을 받았다. 이 테스트의 핵심은 .. 2022. 3. 26.
[HackerRank] Staircase(Easy) by javascript ▷ 문제 : Staircase (Easy) Staircase | HackerRank Print a right-aligned staircase with n steps. www.hackerrank.com ▷ 해결 날짜 : 2022.03.18 ▷ 소요 시간 : 3분 ▷ 풀이 과정 : 그냥 단순하게 입력받은 수 만큼 "#"으로 이루어진 트리를 만드는건데, 우측 정렬로 만드는 것이다. # ## ### #### ##### ###### 문법 몇개만 알면 Easy난이도 답게 매우 간단하다. ▷ 구현 function staircase(n) { for(let i = 1; i 2022. 3. 18.
반응형
TOP