알고리즘, SQL
프로그래머스 알고리즘 문제풀이 햄버거 만들기 (시간 초과)
everyday-spring
2024. 8. 22. 22:52
https://school.programmers.co.kr/learn/courses/30/lessons/133502
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제가 길게 적혀있긴 하지만 로직적으로 복잡한 문제는 아니다.
문제는 시간초과
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에 하나씩 넣으면서 확인작업을 하게되면
시간 초과가 나오지 않는다