코딩 테스트
프로그래머스) 카드 뭉치 Lv1
우루쾅
2024. 2. 4. 01:09
728x90
반응형
SMALL
카드의 순서를 맞추는 문제
문제를 보자마자 방법을 깨달아서 타닥타닥 문제를 바로 풀었다.
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
String answer = "Yes";
int a = 0;
int b = 0;
for(int i=0; i<goal.length; i++){
if(cards1[a].equals(goal[i])){
a++;
}else if(cards2[b].equals(goal[i])){
b++;
}else{
answer = "No";
}
}
return answer;
}
}
당당하게 코딩을 하고 딱 돌렸는데
java.lang.ArrayIndexOutOfBoundsException
에러 발생...
무슨 에러인가 확인해보니 배열의 범위를 벗어나려고 할 때 발생하는 에러이다
여기에서 변수 a, b는 각각 card1과 card2의 인덱스를 나타내므로, 각 배열의 크기를 초과하지 않도록 검사하는 코드를 추가해주었다!
clear~
정답
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
String answer = "Yes";
int a = 0;
int b = 0;
for(int i=0; i<goal.length; i++){
if(a < cards1.length && cards1[a].equals(goal[i])){
a++;
}else if(b < cards2.length && cards2[b].equals(goal[i])){
b++;
}else{
answer = "No";
}
}
return answer;
}
}
출처
연습문제 > 카드 뭉치
https://school.programmers.co.kr/learn/courses/30/lessons/159994?language=java
728x90
반응형
LIST