Problem From.
https://leetcode.com/problems/equal-row-and-column-pairs/
오늘 문제는 nXn matrix 가 주어질때, 각각의 column 과 row 가 같은 쌍이 몇개 있는지 구하는 문제였다.
먼저 각 row 를 탐색하면서 map 에 각각의 원소가 몇개 있는지 구한다.
Example 1 을 예시로 들면 map 에는 key 값 "3,2,1" 로 1 이 들어가는 식이다.
그 다음 column 을 탐색하면서 각각의 원소를 모두 더해서 string 으로 만든 값을 map 에 key 값으로 사용하여, value 를 answer 에 누적시켜서 더해주면 답을 구할 수 있다.
class Solution {
fun equalPairs(grid: Array<IntArray>): Int {
var answer = 0
val map = mutableMapOf<String, Int>()
for(i in 0 until grid.size) {
val sb = StringBuilder()
for(j in 0 until grid.size) {
sb.append("${grid[i][j]},")
}
map[sb.toString()] = map.getOrDefault(sb.toString(), 0) + 1
}
for(i in 0 until grid.size) {
val sb = StringBuilder()
for(j in 0 until grid.size) {
sb.append("${grid[j][i]},")
}
answer += map.getOrDefault(sb.toString(), 0)
}
return answer
}
}