문제https://level.goorm.io/exam/194982/%EC%9E%A5%EB%A7%88/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이배열을 이용한 풀이를 진행했으며, 문제의 조건을 잘 파악하고 풀이를 진행해야 한다.장마 기간에 3의 배수가 되는 일자에 비가 왔던 지역에 단 하나씩 물을 빼줘야 한다. 코드// Run by Node.jsconst readline = require('readline');(async () => { let rl = readline.createInterface({ input: process.stdin }); const input = []; for await (const line of rl..
코딩 테스트
문제https://www.acmicpc.net/problem/17779 풀이구현 문제이며, BFS 알고리즘을 이용해 5지역의 영역을 이동 및 확장해가며 답을 도출하는 풀이이다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [n] = input.shift();const map = input.slice();const total = map.reduce((acc, cur) => { return acc + cur.r..
문제https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이해당 문제는 DFS를 이용해 모든 조합을 검증해야 하는 문제이다. 코드const solution = (n, computers) => { let answer = 0; const visited = []; const dfs = (idx) => { visited[idx] = true; for (let i = 0; i
문제https://www.acmicpc.net/problem/17142 풀이본 문제는 이전에 풀이했던 연구소 문제의 다른 버전이며, 주어지는 수 만큼 바이러스를 활성화 했을 때 모든 공간에 바이러스가 확산되는 시간의 최소값을 구하는 문제다. 해당 문제에서는 조심해야할 포인트가 있다.바이러스가 확산될 때 비활성 바이러스는 넘어갈 수 있다.(개인적으로 햇갈렸던 부분) 활성화할 바이러스의 조합을 정하는 로직 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이처음에는 DFS로 풀어볼까 라고 생각했지만 시간초과 에러가 예상되어 정렬 알고리즘을 생각해봤다. sort 메서드를 사용할 때 a b 두 변수는 문자열이며 두 문자열을 앞뒤로 서로 더했을 때, 크기를 기준으로 정렬했다. 마지막에 값을 반환할 때는 0으로 시작하는 모든 문자들을 0으로 대체했는데, 이는 numbers로 입력된 배열의 요소들이 모두 수학적으로 0일때의 예상 결과는 0이 되기 때문에..
문제https://www.acmicpc.net/problem/17140 풀이이 문제는 중복된 요소의 갯수를 측정해 이용하는 문제이다.Map객체를 이용해 시간복잡도를 최적화 해주는 로직이 핵심이라 생각한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [r, c, k] = input.shift();const arr = input;let cnt = 0;let temp = Array.from({ length: 10..