반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/159994?language=javascript
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
첫 번째 풀이
function solution(cards1, cards2, goal) {
for(let i = 0; i < goal.length; i++) {
if(cards1[0] === goal[i]) {
cards1.shift();
} else if(cards2[0] === goal[i]) {
cards2.shift();
} else {
return "No"
}
}
return "Yes"
}
그러나, 해당 코드는 시간복잡도에서 문제가 있다.
다른 풀이
그래서 다음과 같이 풀면 시간복잡도 문제를 해결할 수 있다.
function solution(cards1, cards2, goal) {
let j = 0;
let k = 0;
for(let i=0;i<goal.length;i++){
if(goal[i] == cards1[j]) j++;
else if(goal[i] == cards2[k]) k++;
else return "No"
}
return "Yes";
}
반응형
'CS > 알고리즘' 카테고리의 다른 글
[230427] 과일 장수 (0) | 2023.04.27 |
---|---|
[230424] 프로세스 (0) | 2023.04.24 |
[230423] 소수 만들기 (0) | 2023.04.23 |
[230423] 연속 부분 수열 합의 개수 (0) | 2023.04.23 |
[230423] 명예의 전당 (1) | 2023.04.23 |