Grind75라는 요즘 핫한 코테 준비 문제집
LeetCode에서 풀이할 수 있고 드물게 TypeScript도 지원한다기에
일단 되는 데까지 TypeScript, JavaScript, Java 이렇게 세 가지로 풀어 보기로 했다
그래서 제목이 좀 길어짐
아 . 그리고
모든 문제는 영어로 되어 있다 음 ;; ㅎ
1번 문제는 제시된 int[] 타입 배열 num에서 두 수를 더해 int target이 되는 경우를 출력하면 된다
특이사항은 어떤 경우든 정답 케이스는 단 하나로 보장되어 있다는 것
아무튼 처음 내 풀이는 이랬다
nums를 순회하면서 자기 자신의 다음 요소부터 차례로 더하기
=> 을 구현하면 중복 쌍이 나오지 않을 것 같은데?
TypeScript
function twoSum(nums: number[], target: number): number[] {
let answer:number[] = [];
for(let i:number = 0; i<nums.length; i++){
for(let j:number = i+1; j<nums.length; j++){
if(nums[i]+nums[j] === target){
answer.push(i);
answer.push(j);
}
}
}
return answer;
};
JS 답안은 사실 여기서 type만 빼면 되긴 함
Java
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] answer = new int[2];
for(int i = 0; i<nums.length; i++){
for(int j = i+1; j<nums.length; j++){
if(nums[i] + nums[j] == target) {
answer[0] = i;
answer[1] = j;
}
}
}
return answer;
}
}
근데 이건 O(N^2)의 복잡도를 가지고 있는데
다른 방법으로도 풀 수 있을까?
'미분류 > 취준' 카테고리의 다른 글
또 근황 (2) | 2025.04.06 |
---|---|
근황 (0) | 2025.03.17 |
[PGMRS / Java] 개인정보 수집 유효기간 (2) | 2024.12.25 |
[Grind75 / TypeScript, Java] #2 Valid Parentheses (0) | 2024.10.22 |
알고리즘 공부할 것 리스트 (0) | 2024.10.16 |
댓글