We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
💬 문제
https://school.programmers.co.kr/learn/courses/30/lessons/77485
💬 Idea
rows, columns 크기의 행렬을 생성한다
쿼리를 돌면서 행렬 테두리를 회전시킨다
[ 행렬 테두리 회전 로직 ]
💬 풀이
var ans: [Int] = [] func solution(_ rows:Int, _ columns:Int, _ queries:[[Int]]) -> [Int] { var arr: [[Int]] = [] // 행렬 생성 for i in 0..<rows { arr.append([Int]((i * columns) + 1...(i * columns) + columns)) } for query in queries { arr = rotateArr(arr, query[1] - 1, query[0] - 1, query[3] - 1, query[2] - 1) } return ans } /// 행렬 테두리를 회전하는 메서드 func rotateArr(_ arr: [[Int]], _ x1: Int, _ y1: Int, _ x2: Int, _ y2: Int) -> [[Int]] { var rotateArr = arr let first = rotateArr[y1 + 1][x1] // 시작점에 들어가야할 숫자 저장 var changeArr = [first] // - 👈🏻 // | | // - for i in x1 + 1...x2 { rotateArr[y1][i] = arr[y1][i - 1] changeArr.append(arr[y1][i - 1]) } // - // | |👈🏻 // - for i in y1 + 1...y2 { rotateArr[i][x2] = arr[i - 1][x2] changeArr.append(arr[i - 1][x2]) } // - // | | // - 👈🏻 for i in stride(from: x2 - 1, to: x1 - 1, by: -1) { rotateArr[y2][i] = arr[y2][i + 1] changeArr.append(arr[y2][i + 1]) } // - // |👈🏻 | // - for i in stride(from: y2 - 1, to: y1, by: -1) { rotateArr[i][x1] = arr[i + 1][x1] changeArr.append(arr[i + 1][x1]) } rotateArr[y1][x1] = first // 시작점에 들어가야할 숫자 할당 ans.append(changeArr.sorted().first!) // 이동한 숫자 중 최솟값 구하기 return rotateArr }
The text was updated successfully, but these errors were encountered:
#107 - 행렬 테두리 회전하기 문제 풀이
33a6718
hwangJi-dev
No branches or pull requests
💬 문제
https://school.programmers.co.kr/learn/courses/30/lessons/77485
💬 Idea
rows, columns 크기의 행렬을 생성한다
쿼리를 돌면서 행렬 테두리를 회전시킨다
[ 행렬 테두리 회전 로직 ]
💬 풀이
The text was updated successfully, but these errors were encountered: