목록Vue/JavaScript 알고리즘 (24)
HIT해
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 바로 이전에 풀었던 종이의 개수와 완전 똑같은 문제다. 하지만 문법 및 분할정복 개념 숙련도를 높이기 위해 클론코딩없이 만들어 보았다. 하지만 또 틀린 부분이 있었는데 바로 이부분이다. paper = paper.map(r => r.replace('\r','').split(' ')); 정리를 하자 map은 배열안의 배열을 괄호 안의 규칙으로 만들 떄 사용한다. 위의 경우 ..

https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 기본적인 분할 정복 문제다. 처음에 모든 종이내부의 숫자가 일치하지 않으면 9등분으로 나누고 나눈 것에서도 전부 일치하지않으면 9등분을 해서 정답을 찾아나가는 방식이다. 처음 시간 초과가 발생한 이유는 Flag배열을 사용해 검색했는지 안했는지 체크를 하고 다음 부분을 검색해 나가려했는데. 이분 탐색문제는 index와 재귀를 활용해 풀어야 시간초과가 나지 않고 제대로 풀 수 있었다. 그리..
https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr KAKAO 코테문제가 떳다고 해서 가봤다. 밧보기로 lv1부터 먹어보려는데 이게 뭐라고 처음엔 조금 헷갈렸다. 아마 예시로 만들어준 표때문애 괜히 불필요한 배열을 만들다가 헷갈린것 같다, 풀이 코드이다. function solution(friends, gifts) { let N = friends.length let exchange = new Array(N); let giftpoint = new ..
https://school.programmers.co.kr/learn/courses/30/lessons/250137?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 어떤 게임에는 붕대 감기라는 기술이 있습니다. 붕대 감기는 t초 동안 붕대를 감으면서 1초마다 x만큼의 체력을 회복합니다. t초 연속으로 붕대를 감는 데 성공한다면 y만큼의 체력을 추가로 회복합니다. 게임 캐릭터에는 최대 체력이 존재해 현재 체력이 최대 체력보다 커지는 것은 불가능합니다. 기술을 쓰는 도중 몬스터에게 공격을 당하면 기술이 취소되고, ..

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net BFS를 활용해 풀이한 문제다. 연결되어있는 단지의 길이와 갯수를 출력한다. const filePath = process.platform === 'linux' ? '/dev/stdin' : 'input.txt'; const [n,...input] = require("fs") .readFileSync(filePath) .toString() .trim().split('\n'); const N = Num..
https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 백트래킹 및 DFS의 진수라고 할 수 있는 엔퀸이다. const filePath = process.platform === 'linux' ? '/dev/stdin' : 'input.txt'; const input = require("fs") .readFileSync("input.txt") .toString() .trim() .split(" ").map(Number); let N = input[0]; let dx =..
https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net const filePath = process.platform === 'linux' ? '/dev/stdin' : 'Baekjoon/ST/input.txt'; const [n,m] = require("fs") // .readFileSync(filePath) .readFileSync(__dirname + "/input.txt") .toString() .trim().split(' ').map(v =>..
const filePath = process.platform === 'linux' ? '/dev/stdin' : 'input.txt'; const [n,input] = require("fs") .readFileSync(filePath) .toString() .trim().split(' ').map(v => +v) const solution = (n,input) =>{ let arr = new Array(n).fill(0); arr.forEach((el,i)=> arr[i] = (arr[i-1] || 0) + 1); let i = -1; let count = 0; let result = []; while(result.length !== n){ i++; // 인덱스를 위해 count++; // 몇번 갔는지 ..