🗒 문제


📝 나의 문제풀이
class Solution {
fun solution(arr: Array<IntArray>): Int {
var n = arr.size
for(i in 0 until n){
for(j in 0 until n){
if(arr[i][j] != arr[j][i]) return 0
}
}
return 1
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.
class Solution {
fun solution(arr: Array<IntArray>) = if ((arr.indices).all { i -> (i + 1 until arr.size).all { j -> arr[i][j] == arr[j][i] } }) 1 else 0
}
🖊 문제 풀이 시 알면 좋을 것
. 반복문 vs 함수형 스타일
- 반복문 방식
- 직관적이고 읽기 쉬움.
- 디버깅하거나 중간에 return으로 빠져나오기 쉬움.
- 문제를 처음 풀 때는 이 방식이 안정적.
- 함수형(all, any, map) 방식
- 코드가 간결해지고 가독성이 좋음.
- 하지만 처음 보는 사람은 이해하기 어려울 수 있음.
- 알고리즘 문제 풀이 사이트에서 좋아요를 많이 받는 건 대체로 이 쪽.
- Kotlin 함수형 API (all, any, none)
- .all { 조건 } : 모든 원소가 조건을 만족하면 true
- .any { 조건 } : 하나라도 조건을 만족하면 true
- .none { 조건 } : 하나도 만족하지 않으면 true
indices
- 배열이나 리스트의 인덱스 범위(IntRange)를 돌려줌.
val arr = arrayOf(1, 2, 3)
println(arr.indices) // 0..2
until
- 특정 숫자 전까지의 범위를 만드는 연산자.
- n이 3이면 0, 1, 2만 출력됨
for (i in 0 until n) { println(i) } // 0 ~ n-1
협업하는 과정에서 가독성을 생각하면 반복문 방식으로 푸는 게 적합하다고 생각한다.
반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 택배 상자 꺼내기 (0) | 2025.11.11 |
|---|---|
| [프로그래머스] [PCCP 기출문제] 1번 / 동영상 재생기 (0) | 2025.11.10 |
| [프로그래머스] 그림 확대 (0) | 2025.02.18 |
| [프로그래머스] 커피 심부름 (0) | 2025.02.13 |
| [프로그래머스] 날짜 비교하기 (0) | 2025.02.13 |