프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
이 문제는 주어지는 입력값을 처음부터 읽으면서, [빵 - 야채 - 고기 - 빵] 의 순서일 경우, 이 입력값들을 제거하며 정답을 추가하는 문제이다.
이 문제를 풀기 위해 스택의 원리를 사용했다. 빈 문자열을 하나 만들어준 뒤, 이 문자열에 주어지는 입력값을 하나씩 추가해주면서, 문자열의 길이가 4 이상이 될 경우마다 마지막 부분의 문자열이 "1231"로 끝나는지 확인해준다. 만약 "1231"로 끝난다면, 조건에 만족하므로, 문자열에서 "1231"을 제거해주면서 정답을 1 증가시킨다. 입력값을 마지막까지 읽었을 때 정답을 반환한다.
정답 코드
C++
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> ingredient) {
int answer = 0;
string curr = "";
for (int i = 0; i < ingredient.size(); i++) {
curr += to_string(ingredient[i]);
if (curr.length() >= 4 && curr.substr(curr.length() - 4, 4) == "1231") {
curr = curr.substr(0, curr.length() - 4);
answer++;
}
}
return answer;
}
python
def solution(ingredient):
answer = 0
curr = ""
for i in range(len(ingredient)) :
curr += str(ingredient[i])
if len(curr) >= 4 and curr[len(curr) - 4: ] == "1231" :
curr = curr[ : len(curr) - 4]
answer += 1
return answer
'Algorithm > PS' 카테고리의 다른 글
[C++, python] 프로그래머스 - 최솟값 만들기 (0) | 2023.02.27 |
---|---|
[C++, python] 프로그래머스 - 둘만의 암호 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 성격 유형 검사하기 (1) | 2023.02.26 |
[C++, python] 프로그래머스 - 카드 뭉치 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 문자열 나누기 (0) | 2023.02.26 |
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
이 문제는 주어지는 입력값을 처음부터 읽으면서, [빵 - 야채 - 고기 - 빵] 의 순서일 경우, 이 입력값들을 제거하며 정답을 추가하는 문제이다.
이 문제를 풀기 위해 스택의 원리를 사용했다. 빈 문자열을 하나 만들어준 뒤, 이 문자열에 주어지는 입력값을 하나씩 추가해주면서, 문자열의 길이가 4 이상이 될 경우마다 마지막 부분의 문자열이 "1231"로 끝나는지 확인해준다. 만약 "1231"로 끝난다면, 조건에 만족하므로, 문자열에서 "1231"을 제거해주면서 정답을 1 증가시킨다. 입력값을 마지막까지 읽었을 때 정답을 반환한다.
정답 코드
C++
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> ingredient) {
int answer = 0;
string curr = "";
for (int i = 0; i < ingredient.size(); i++) {
curr += to_string(ingredient[i]);
if (curr.length() >= 4 && curr.substr(curr.length() - 4, 4) == "1231") {
curr = curr.substr(0, curr.length() - 4);
answer++;
}
}
return answer;
}
python
def solution(ingredient):
answer = 0
curr = ""
for i in range(len(ingredient)) :
curr += str(ingredient[i])
if len(curr) >= 4 and curr[len(curr) - 4: ] == "1231" :
curr = curr[ : len(curr) - 4]
answer += 1
return answer
'Algorithm > PS' 카테고리의 다른 글
[C++, python] 프로그래머스 - 최솟값 만들기 (0) | 2023.02.27 |
---|---|
[C++, python] 프로그래머스 - 둘만의 암호 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 성격 유형 검사하기 (1) | 2023.02.26 |
[C++, python] 프로그래머스 - 카드 뭉치 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 문자열 나누기 (0) | 2023.02.26 |