코린이의 소소한 공부노트

[LeetCode/Easy] 1422. Maximum Score After Splitting a String 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1422. Maximum Score After Splitting a String

무지맘 2023. 4. 12. 14:24

1. Input

1) String s

- s01로 이루어져 있다.

 

2. Output

1) s를 빈 문자열이 아닌 문자열 2개로 나눴을 때 얻을 수 있는 최고 점수를 반환

- 왼쪽 문자열에서는 0의 개수를, 오른쪽 문자열에서는 1의 개수를 구한다.

- 점수는 위에서 구한 둘의 합으로 계산한다.

 

3. Constraint

1) 2 <= s.length <= 500

 

4. Example

Input: s = "011101" -> Output: 5

설명:

- "0" / "11101", 점수 = 1 + 4 = 5

- "01" / "1101", 점수 = 1 + 3 = 4

- “011" / "101", 점수 = 1 + 2 = 3

- “0111" / "01", 점수 = 1 + 1 = 2

- "01110" / "1", 점수 = 2 + 1 = 3

 

5. Code

1) 첫 코드(2023/04/12)

int num1 = 0, answer = 0;
for(int i=0 ; i<s.length() ; i++)
    if(s.charAt(i)=='1') num1++;
int num0 = 0;
for(int i=0 ; i<s.length()-1 ; i++){
    if(s.charAt(i)=='0')
        num0++;
    else
        num1--;
    if(num0 + num1 > answer)
        answer = num0 + num1;
}
return answer;