728x90
https://school.programmers.co.kr/learn/courses/30/lessons/133502?language=java#
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. Java
import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
List<Integer> list = new ArrayList<>();
for ( int i : ingredient ) {
list.add(i);
}
int[] hamburger = {1, 2, 3, 1};
int i = 0;
int n = ingredient.length - hamburger.length + 1;
while ( i <= n ) {
boolean able = true;
for ( int j = 0; j < hamburger.length; ++j ) {
if ( list.get(i + j) != hamburger[j] ) {
able = false;
break;
}
}
if ( able ) {
for ( int j = 0; j < hamburger.length; ++j ) {
list.remove(i);
}
answer++;
n -= hamburger.length;
if ( i - hamburger.length >= -1 ) {
i -= hamburger.length;
} else {
i = -1;
}
}
i++;
}
return answer;
}
}
더보기
import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
int[] hamburger = {1, 2, 3, 1};
int idx_s = -1, idx_e = -1;
for ( int i = 0; i < ingredient.length; ++i ) {
if ( ingredient[i] == 1 ) {
idx_s = i;
break;
}
}
for ( int i = ingredient.length-1; i >= 0; --i ) {
if ( ingredient[i] == 1 ) {
idx_e = i;
break;
}
}
List<Integer> list = new ArrayList<>();
if ( idx_s < 0 ) {
} else {
for ( int i = idx_s; i <= idx_e; ++i ) {
list.add(ingredient[i]);
}
}
outer:
while ( list.size() >= hamburger.length ) {
idx_s = -1; idx_e = -1;
boolean able = false;
for ( int i = 0; i < list.size(); ++i ) {
if ( list.get(i) == 1 ) {
idx_s = i;
idx_e = i + hamburger.length - 1;
able = true;
if ( idx_s < 0 || idx_e >= list.size() ) {
break outer;
}
int k = 0;
boolean next = true;
for ( int j = idx_s; j <= idx_e; ++j ) {
if ( list.get(j) != hamburger[k++] ) {
next = false;
break;
}
}
if (next) {
answer++;
for ( int j = idx_e; j >= idx_s; --j ) {
list.remove(j);
}
continue outer;
}
}
}
if (!able) {
break;
}
}
return answer;
}
}
import java.util.*;
import java.util.regex.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
String hamburger = "1231";
String material = "";
for ( int i : ingredient ) {
material += i;
if ( material.indexOf(hamburger) > -1 ) {
answer ++;
material = material.replaceAll(hamburger, "");
}
}
return answer;
}
}
import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
String hamburger = "1231";
String material = "";
for ( int i : ingredient ) {
material += i;
if ( material.length() >= hamburger.length() ) {
if ( material.substring(material.length()-hamburger.length(),material.length()).equals(hamburger) ) {
answer++;
material = material.substring(0,material.length()-hamburger.length());
}
}
}
return answer;
}
}
2. Python
def solution(ingredient):
answer = 0
list = []
for i in ingredient :
list.append(i)
hamburger = [1, 2, 3, 1]
i = 0
n = len(ingredient) - len(hamburger) + 1
while i <= n :
able = True
for j in range(len(hamburger)) :
if list[i + j] != hamburger[j] :
able = False
break
if able == True :
for j in range(len(hamburger)) :
list.pop(i)
answer += 1
n -= len(hamburger)
if i - len(hamburger) >= -1 :
i -= len(hamburger)
else :
i = -1
i += 1
return answer
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 프로그래머스 ( Programmers )' 카테고리의 다른 글
[프로그래머스(Programmers)][Java,Python] (Lv1) 성격 유형 검사하기 (2022 KAKAO TECH INTERNSHIP) (0) | 2025.03.21 |
---|---|
[프로그래머스(Programmers)][Java,Python] (Lv1) 데이터 분석 (PCCE 기출문제 10번) (0) | 2025.03.21 |
[프로그래머스(Programmers)][Java,Python] (Lv1) 명예의 전당 (1) (0) | 2025.03.19 |
[프로그래머스(Programmers)][Java,Python] (Lv1) 숫자 짝꿍 (0) | 2025.03.18 |
[프로그래머스(Programmers)][Java,Python] (Lv1) 이웃한 칸 (PCCE 기출문제 9번) (0) | 2025.03.18 |