1) Question
https://leetcode.com/problems/two-sum/
2) My Solution
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] answer=new int[2];
int count=nums.length;
for(int i=0; i<count-1;i++) {
int checkNum=target-nums[i];
for (int j=i+1;j<count;j++) {
if(nums[j]==checkNum) {
answer[0]=i;
answer[1]=j;
break;
}
}
}
return answer;
}
}
3) Solution
public int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[j] == target - nums[i]) {
return new int[] { i, j };
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
4) Check Point!
- break문은 한 블럭만 깰 수있다!
- 반복문을 깨는것을 굳이 할 필요없다 >> 오히려 시간소모가 더 되는 경우 존재! >> Tip! 바로 return하면 OK!
- 조건/반복문 안에서 return하는 경우 예외처리 필수
→ throw new IllegalArgumentException("there is no Solution.");
'Algoritm > Quiz-Solutions' 카테고리의 다른 글
[Programmers/코딩테스트연습/정렬] k번째 수 (0) | 2020.08.30 |
---|---|
[백준 2156] 포도주 시식 (Java) - DP (0) | 2020.05.07 |
[백준 1260] DFS와 BFS (Java) - DFS,BFS (0) | 2020.05.07 |
[백준 9012] 괄호(Java) - Stack (0) | 2020.05.04 |
[백준 10854] 큐 (JAVA) - Queue (0) | 2020.05.03 |
댓글