https://school.programmers.co.kr/learn/courses/30/lessons/133502
문제 접근
값을 저장하고 저장된 데이터 내에서 1231을 검사하고자 하였다.
처음엔 for문에서 ingredient 배열의 값을 다 저장한 뒤 다른 반복문에서 저장된 데이터들을 검사하는 방법을 썼었는데 반복문이 여러 번 있어서 그런지 시간초과에 걸렸다.그래서 첫 for문 내에서 값을 저장함과 동시에 저장된 데이터 값이 4개가 되면 1231이 되는지 검사하였다.
* List의 요소 값을 삭제할 때 뒤에 값이 있을 시엔 뒤의 값이 앞 자리에 당겨와진다. / 맨 마지막 요소를 삭제할 땐 앞에 있던 값이 마지막 값이 된다.
import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
ArrayList<Integer> ham = new ArrayList<Integer>();
for(int i=0; i<ingredient.length; i++) {
ham.add(ingredient[i]);
// 값을 하나씩 넣으면서 1231 검사
if(ham.size() >= 4 && // 오류 안나게 크기 4부터
ham.get(ham.size()-4) == 1 &&
ham.get(ham.size()-3) == 2 &&
ham.get(ham.size()-2) == 3 &&
ham.get(ham.size()-1) == 1) {
answer++;
for(int j=0; j<4; j++) ham.remove(ham.size()-1); // 1231에서 뒤에 1부터 삭제
}
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / 삼총사 / JAVA] (0) | 2023.01.27 |
---|---|
[프로그래머스 / 옹알이(2) / JAVA] (0) | 2023.01.27 |
[프로그래머스 / 과일 장수 / JAVA] (0) | 2023.01.18 |
[프로그래머스 / 명예의 전당 (1) / JAVA] (0) | 2023.01.13 |
[프로그래머스 / 문자열 나누기 / JAVA ] (0) | 2023.01.12 |
댓글