문제https://www.acmicpc.net/problem/21610 풀이이번 문제는 조건이 까다로운 구현 문제이다. 이 문제에서 가장 어려웠던 것은 기능의 구현이 아닌 문제 설명에 대한 이해이다. 구름이 처음 생성되는 구역은 [N-1, 0], [N-1, 1], [N, 0], [N, 1]이며, 이후 한 명령의 동작이 모두 끝나면 새로운 구름의 구역이 생성되는데 이 새롭게 생성된 구름을 이용해 다음 동작을 해야한다...... 이 부분을 햇갈려서 조금 오래 걸렸다...https://www.acmicpc.net/board/view/112464 그리고 다시한번 주의해야할 점을 알게되었다.바로 동기적인 데이터 갱신이다. 이 문제에서는 구름의 이동 동작을 구현할 때 구름의 생성과 삭제를 연속해서 했지만, 사실 구..
빡구현
문제https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제는 하드한 구현 문제이다. key가 되는 배열의 크기를 (자물쇠의 크기 * 3) - 2 크기로 만들어 주어 자물쇠가 배열안에 들어가 체크가 가능하게 만들어 주어야 한다. 이는 열쇠가 자물쇠 밖으로 이동해도 된다는 조건을 구현한 것이다. 또한 열쇠의 회전도 구현해야 한다. 회전의 경우 배열 회전 문제에서 많이 봤던 로직을 이용하면 되는데, 열쇠의 가로줄이 새로운 열쇠 배열의 세로줄이 된다..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcr2S3a%2FbtskhcOtjNG%2Fe7vBV2CVqOMbNwsoynOp00%2Fimg.jpg)
문제 설명 문제 풀이 방법 각 도형의 경우의 수를 따져 나올 수 있는 모양들이 특정 좌표가 주어졌을 때, 그 좌표를 좌상단에 고정한뒤 그 좌표를 기준으로 브럭의 위치에 해당하는 보드에서의 숫자들을 던한 뒤 Math.max를 이용해 비교해준다. 코드 1 // 빡구현을 깨닫게 해준 문제 const path = __dirname + '/예제.txt'; // /dev/stdin let input = require('fs').readFileSync(path).toString().trim().split('\n').map(e => e.split(' ').map(Number)); const [height, width] = input[0]; const board = input.splice(1); // 모든 브럭의 기준은..