Scribbling

[Programmers] 도둑질 본문

Computer Science/Algorithms & Data Structures

[Programmers] 도둑질

focalpoint 2024. 6. 18. 18:07

https://school.programmers.co.kr/learn/courses/30/lessons/42897?language=cpp

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

1. Python

def solution(money):
    def helper(money):
        if not money:
            return 0
        if len(money) == 1:
            return money[0]
        s1 = money[0]
        s2 = max(money[0], money[1])
        ret = s2
        for i in range(2, len(money)):
            m = money[i]
            ret = max(ret, s1 + m, s2)
            s1, s2 = s2, ret
        return ret
    return max(helper(money[1:]), helper(money[:-1]))

 

2. C++

int helper(const vector<int>& money);

int solution(vector<int> money) {
    return max(helper(vector<int>(money.begin(), money.end()-1)), helper(vector<int>(money.begin()+1, money.end())));
}

int helper(const vector<int>& money) {
	if (money.empty()) return 0;
	if (money.size() == 1) return money[0];
	int s1 = money[0];
	int s2 = max(money[0], money[1]);
	for (int i=2; i<money.size(); i++) {
		int m = money[i];
		int tmp = s1;
		s1 = s2;
		s2 = max(tmp+m, s2);
	}
	return s2;
}

'Computer Science > Algorithms & Data Structures' 카테고리의 다른 글

[Programmers] 네트워크  (0) 2024.06.20
[Programmers] 타겟 넘버  (0) 2024.06.20
[Programmers] 사칙연산  (0) 2024.06.18
[Programmers] 등굣길  (0) 2024.06.17
[Programmers] 정수 삼각형  (0) 2024.06.17