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
'코딩 테스트' 카테고리의 다른 글
프로그래머스) 기사단원의 무기 Lv1 (2) | 2024.02.05 |
---|---|
프로그래머스) 대충 만든 자판 Lv1 (2) | 2024.02.04 |
프로그래머스) 명예의 전당(1) Lv1 (0) | 2024.02.04 |
프로그래머스) 추억 점수 Lv1 (0) | 2024.02.03 |
Java에서 length, length(), size()의 차이점! (0) | 2024.02.02 |