https://school.programmers.co.kr/learn/courses/30/lessons/133502
문제가 길게 적혀있긴 하지만 로직적으로 복잡한 문제는 아니다.
문제는 시간초과
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
StringBuilder sb = new StringBuilder();
for(int n : ingredient) {
sb.append(n).append("");
}
String str = sb.toString();
while (str.contains("1231")){
str = str.replaceFirst("1231", "");
answer++;
}
return answer;
}
}
단순하게 정수형 배열을 문자열로 변환하고
replace를 사용했는데 시간 초과로 실패했다
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
StringBuilder sb = new StringBuilder();
for (int n : ingredient) {
sb.append(n);
if (sb.length() >= 4 && sb.subSequence(sb.length() - 4, sb.length()).equals("1231")) {
answer++;
sb.delete(sb.length() - 4, sb.length());
}
}
return answer;
}
}
StringBuilder에 하나씩 넣으면서 확인작업을 하게되면
시간 초과가 나오지 않는다
'알고리즘, SQL' 카테고리의 다른 글
프로그래머스 SQL 문제풀이 성분으로 구분한 아이스크림 총 주문량 (1) | 2024.09.12 |
---|---|
프로그래머스 알고리즘 문제풀이 달리기 경주 (시간 초과) (0) | 2024.08.28 |
프로그래머스 코딩테스트연습 133499 '옹알이 (2)' (0) | 2024.08.13 |
240808 (0) | 2024.08.08 |