문제https://www.acmicpc.net/problem/17822 코드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, m, t] = input.shift();let target = input.splice(0, n);const moves = input.splice(0, t);const dir = [[-1, 0], [1, 0], [0, -1], [0, 1]];for (let i = 0; i Array(m)...
코딩 테스트
문제https://www.acmicpc.net/problem/17837 풀이이 문제는 조금 난이도 있는 구현인거 같다. 우선 각 칸마다 색상과 쌓여있는 말들을 저장할 방법에 대해 고민했다. 서칭을 하던 중 칸 하나의 요소에 객체로 color와 stack을 넣어줘 관리하는 방법을 찾았다. 이 문제를 풀며 어려운 점이 있었는데, 파란칸(2)과 보드의 영역을 나가는 동작의 경우 반대 방향으로 움직이는 동작의 구현이였다. 마지막까지 반대 방향으로 움직이는 로직에서 실수를 하며 시간을 소비했다.... 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') ..
문제https://www.acmicpc.net/problem/17143 풀이이번 문제는 단순 구현 문제이지만 까다로운 로직이 필요한 구현 문제이다. 상어를 낚는 로직은 2차원 배열에서 해당 열에 가장 위에 있는 상어만 추출해주면된다.const casting = (curPos) => { for (let i = 0; i 모든 상어들이 움직이는 로직을 담당하는 함수를 만든다.이 함수에서 새로운 배치를 갖는 배열을 저장하도록 새로운 배열을 만든다. 이렇게 만들어진 배열에 각 상어의 새로운 위치를 담아준다.담을때 같은 위치에 상어가 중복되어 있을 때 무게가 가장 큰 상어만 남겨두도록 설계한다.const move = () => { const temp = Array.from({ length: r }, () =..
문제https://level.goorm.io/exam/49054/%EC%96%B4%EB%A0%A4%EC%9A%B4-%EB%AC%B8%EC%A0%9C/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이이 문제는 팩토리얼 처리를 BigInt를 사용해 할 수 있는지와 팩토리얼을 구할때 최적화를 할 수 있는지 테스트하는 문제이다. 우선 BigInt의 경우는 팩토리얼된 값의 수 각각을 더해줘야 하기에 모든 수가 필요하다. 이렇게 되면 팩도리얼 계산 특징상 수의 크기는 기하급수적으로 커지게된다. 기존 Number 타입으로 표현할 수 있는 크기를 넘게된다. 그렇기에 BigInt를 이용해 계산해준다. 팩토리얼 계산도 주의해야 한다. 처음에는 ..
문제https://level.goorm.io/exam/43061/%EA%B3%84%EC%88%98%EA%B8%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이해당 문제는 반복문을 이용해 수를 1씩 더해주는 로직을 진행하며 각 자리별 최대 값을 넘는지 확인하는 문제이다. 코드// Run by Node.jsconst readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout});const input = [];let t = null;r..
문제https://level.goorm.io/exam/150257/00%EC%A6%9D%EA%B6%8C-%EC%A3%BC%EC%8B%9D%ED%88%AC%EC%9E%90%EC%9E%90-a/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이정렬 알고리즘을 이용해 구현하는 문제이다. input으로 주어지는 주가와 개수, 입력이 들어오는 데로 정해지는 회사 번호를 이용해 정렬을 진행해준다. 조건은 평가 금액(주가 * 개수)을 기준으로 하며 평가 금액이 같은 경우 회사 번호를 기준으로 정렬한다. 그리고 이 문제는 Javascript만 그런지 모르겠지만, 문제 제출 시 process.exit()를 없애니 잘 됬다.코드// Run by ..