[Lv. 0] 특별한 이차원 배열 2프로그래머스/Level 02023. 4. 24. 15:19
Table of Contents
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/181831
난이도 : Level.0
언어 : Kotlin
문제 설명 :
n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
- 0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]
제한 사항 :
- 1 ≤ arr의 길이 = arr의 원소의 길이 ≤ 100
- 1 ≤ arr의 원소의 원소 ≤ 1,000
- 모든 arr의 원소의 길이는 같습니다.
입출력 예 :
array | result |
[[5, 192, 33], [192, 72, 95], [33, 95, 999]] | 1 |
[[19, 498, 258, 587], [63, 93, 7 ,254], [258, 7, 1000, 723], [587, 754, 723, 81]] | 0 |
풀이 :
class Solution {
fun solution(arr: Array<IntArray>): Int {
var answer: Int = 1
for (i in arr.indices) {
for (j in arr[0].indices) {
if (arr[i][j] != arr[j][i]) {
answer = 0
}
}
}
return answer
}
}
입출력 예 1번을 보고 복잡한 문제인줄 알았는데 그건 아니었다.
이렇게도 풀어봤는데 뭐가 더 좋을지는 모르겠다.
class Solution {
fun solution(arr: Array<IntArray>): Int = if (arr.indices.map { i -> arr[i].indices.count { j -> arr[i][j] == arr[j][i] }}.filterNot { it == arr[0].size }.isEmpty()) 1 else 0
}
----------
ps.
성능테스트를 해봤다.
자바쪽은 스트림이 느리다라는 이야기를 얼핏 들은 적이 있는데 확실히 차이가 보인다.
'프로그래머스 > Level 0' 카테고리의 다른 글
[Lv. 0] 특별한 이차원 배열 1 (0) | 2023.04.25 |
---|---|
[Lv. 0] 정수를 나선형으로 배치하기 (0) | 2023.04.24 |
[Lv. 0] 정사각형으로 만들기 (0) | 2023.04.24 |
[Lv. 0] 이차원 배열 대각선 순회하기 (0) | 2023.04.24 |
[Lv. 0] 중복된 숫자 개수 (0) | 2023.04.21 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!