🗒 문제

📝 나의 문제풀이
class Solution {
fun solution(sides: IntArray): Int {
sides.sort()
return if(sides[2] < sides[0] + sides[1]) 1 else 2
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.
class Solution {
fun solution(sides: IntArray) = sides.sorted().let { (x, y, z) -> if (x + y > z) 1 else 2 }
}
🖊 문제 풀이 시 알면 좋을 것
sorted()
sides.sorted()
- 새 리스트(List<Int>)를 만들어 정렬
- 원본 sides는 그대로
val arr = intArrayOf(3, 2, 1)
val list = arr.sorted()
println(arr.toList()) // [3, 2, 1]
println(list) // [1, 2, 3]
⚠️ 배열 → 리스트 변환 + 새 객체 생성
let { }
let { ... }
✔ let이 뭐냐면
- “이 값을 it(또는 이름)으로 받아서 한 번 쓰고 결과를 반환”
val x = 5
x.let { it * 2 } // 10
여기서는 이렇게 쓰임
sides.sorted().let { ... }
👉 정렬된 결과를 let 안에서만 사용
구조 분해 선언 (x, y, z)
{ (x, y, z) -> ... }
✔ 의미
- 리스트의 값을 순서대로 꺼내서 변수에 담기
val list = listOf(1, 2, 3)
val (x, y, z) = list
x = 1
y = 2
z = 3
그래서
if (x + y > z)
는
if (sides[0] + sides[1] > sides[2])
와 같은 의미
반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 피자 나눠 먹기 (3) (0) | 2025.12.19 |
|---|---|
| [프로그래머스] 배열 자르기 (0) | 2025.12.19 |
| [프로그래머스] 머쓱이보다 키 큰 사람 (0) | 2025.12.19 |
| [프로그래머스] 최댓값 만들기(1) (0) | 2025.12.19 |
| [프로그래머스] 세균 증식 (0) | 2025.12.19 |