알고리즘 테스트 ⏲/프로그래머스 [프로그래머스] 행렬 테두리 회전하기 풀이 / JavaScript - 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(rows, columns, queries) { const result = [] const table = Array.from({length: rows + 1}, () => []) let tdx = 1 // 테이블 값 입력 for (let i = 1; i <= rows; i += 1) { for (let j = 1; j <= columns; j += 1) table[i][j] = tdx++ } // 반 시계로 순회 queries.forEach(query => { const [row, col, drow, dcol] = query let [nr, nc] = [row, dcol] // 현재 위치 (오른쪽 위부터) const cddt = [table[nr][nc]] // 시작 위치 값 저장 while (nc > col) cddt.push(table[nr][nc] = table[nr][--nc]) while (nr < drow) cddt.push(table[nr][nc] = table[++nr][nc]) while (nc < dcol) cddt.push(table[nr][nc] = table[nr][++nc]) while (nr > row) cddt.push(table[nr][nc] = table[--nr][nc]) table[nr + 1][nc] = cddt[0] // 시작 위치 값 입력 result.push(Math.min(...cddt)) // 회전 요소 중 최솟값 }) return result } 구현 로직 시작 위치는 오른쪽 위부터 반시계로 돌면서 앞의 값을 현재 위치에 저장하면서 순회합니다. 위 테이블에서 10이 시작이라면 우선 10을 미리 저장해놓고 9를 현재 자리에 놓고 이동, 9 자리에는 앞의 수 8을 놓고 이동하는 식으로 순회하면서 전체 값을 한칸씩 이동시켜줍니다. 1. 테이블 값 입력 (1 ~ n) 2. 각 query에 대하여 회전 수행 (반시계로 돌면서 값을 한칸씩 이동) 3. 순회한 값들 중 최솟값 입력 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기yjglab 저작자표시 Contents 당신이 좋아할만한 콘텐츠 [프로그래머스] 시소 짝꿍 풀이 / JavaScript 2023.04.14 [프로그래머스] 연속된 부분 수열의 합 풀이 / JavaScript 2023.04.13 [프로그래머스] 우박수열 정적분 풀이 / JavaScript 2023.04.10 [프로그래머스] 전력망을 둘로 나누기 풀이 / JavaScript 2023.04.08 댓글 0 + 이전 댓글 더보기