반응형
문제
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
You can return the answer in any order.
예시
- 위와같이 nums와 target이 fun twoSum에 들어가서 반환값이 0,1이 나와야하게 만들어야합니다.
- 0,1은 nums의 index(위치) 값이고 둘의 합은 9가 되어야합니다.
- 둘의 합이 9가되는 두 숫자의 index를 찾아서 intArray로 반환이 목표입니다.
풀이
class Solution {
fun twoSum(nums: IntArray, target: Int): IntArray? {
//반복구성
for (i in nums.indices) { //nums.indices는 0..nums의 array사이즈까지 range를 뜻합니다.
for (j in i + 1 until nums.size) {//i+1은 같은값을 반복시키지 않기위해 더해주고 num의 사이즈까지 반복합니다.
//타겟과 같은 값 찾기
if (nums[j] == target - nums[i]) { //nums[i]는 i에 위치한 nums를 의미합니다.
return intArrayOf(i, j) // 같다면 index인 i와 j를 리턴합니다
}
}
}
throw IllegalArgumentException("No two sum solution") //만약 아무것도 충족시키지 못할경우
}
}
반응형