■ 문제
요약하자면 a < b > c 또는 a > b < c 인 부분배열이 있을 경우 {1}, 아닐 경우 {0} 을 하는 함수를 구현하라는 문제이다.
입출력 예시를 보면 문제를 더 자세히 이해할 수 있고, 제한시간은 3초 이내이다. numbers가 100이 최대이므로 단순 조회 및 비교 로직으로 구현하여도 제한시간을 초과하는 케이스는 발생할 것 같지 않다.
■ 풀이
isZigZag 함수를 static 으로 구현하여 지그재그 여부를 확인하는 과정을 구현했다.
static int isZigZag(int a, int b, int c){
if(a < b && b > c) return 1;
else if(a > b && b < c) return 1;
else return 0;
}
int[] solution(int[] numbers) {
int size = numbers.length;
int[] answers = new int[size - 2];
for(int i=0; i<size-2; i++){
int e = isZigZag(numbers[i], numbers[i+1], numbers[i+2]);
answers[i] = e;
}
return answers;
}
■ 결어
서류합격한 회사에서 CodeSignal 플랫폼에서 코테를 보길래 처음 CodeSignal 이라는 사이트를 사용해봤다. 처음 봤을 땐 영어로 된 문제에 잔뜩 긴장했으나 막상 읽어보니 어려운 단어는 없고 예시 입출력을 보며 이해하면 충분히 풀 수 있을 것 같다는 생각이 들었다.
+ 원래는 CodeSignal 에서도 Leet 처럼 문제들을 많이 제공해줬는데, 만료돼서 Arcade는 못풀어본다고 한다..
'Algorithm' 카테고리의 다른 글
[LeetCode] 13. Roman to Integer (0) | 2025.02.12 |
---|---|
[LeetCode] 4. Median of Two Sorted Arrays (0) | 2025.02.12 |
[LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2025.02.09 |
[LeetCode] 1. Two Sum (0) | 2025.02.09 |
[LeetCode] 2364. Count Number of Bad Pairs (0) | 2025.02.09 |