반응형
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
[프로그래머스] 문자열 나누기(Java)
구현
velog.io
import java.util.*;
class Solution {
public int solution(String s) {
char first = s.charAt(0);
int yes = 0;
int no = 0;
int answer = 0;
for(int i=0 ; i < s.length() ; i++) {
if(yes == no) {
answer++;
first = s.charAt(i);
}
if(s.charAt(i) == first) yes++;
else no++;
}
return answer;
}
}
후엥... 쉬워보이는데 왜 이해하기 어려운지,,,
나는 약간 substring 써야하나ㅡ 라는 생각을 했었는데 거의 안 쓰고 푸셔서 내가 많이 부족하구나 싶었다,.
🔺 다른 풀이들
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 풀이
public class Solution {
public int solution(String s) {
int answer = 0;
char init = s.charAt(0);
int count = 0;
for (char c : s.toCharArray()) {
if (count == 0) init = c;
if (init == c) count++;
else count--;
if (count == 0) answer++;
}
// 남아있는 글자 처리
if(count > 0) {
answer++;
}
return answer;
}
}
갯수 세는 변수를 하나만 사용하신,,,!
2) 풀이
class Solution {
public int solution(String s) {
int answer = 0;
char firstChar = 0;
int cntY = 0;
int cntN = 0;
for (char c : s.toCharArray()) {
if (firstChar == 0) firstChar = c;
if (c == firstChar) cntY++;
else cntN++;
if (cntY == cntN) {
cntY = cntN = firstChar = 0;
answer++;
}
}
// 남아있는 글자 처리
if (firstChar != 0) answer++;
return answer;
}
}
이거는 변수 2개 사용하셨는데 위랑 흐름은 비슷함
3) 풀이
class Solution {
public int solution(String s) {
int answer = 0;
Character x = s.charAt(0);
int xCnt = 0;
int yCnt = 0;
int i;
for (i = 0; i < s.length(); i++) {
if (x.equals(s.charAt(i))) xCnt++;
else yCnt++;
if (xCnt == yCnt) {
s = s.substring(i + 1);
if(s.length() > 1) {
answer++;
xCnt = 0;
yCnt = 0;
i = -1;
x = s.charAt(0);
}
else answer++;
}
}
if(!s.isEmpty()) return answer + 1;
else return answer;
}
}
내가 생각하던 substring을 생각해서 구현하심,,,!
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] 최소직사각형 (0) | 2023.03.12 |
---|---|
[프로그래머스/Lv. 1] 2016년 (0) | 2023.03.11 |
[프로그래머스/Lv. 1] 소수 만들기 (0) | 2023.03.11 |
[프로그래머스/Lv. 1] 삼총사 (0) | 2023.03.10 |
[프로그래머스/Lv. 1] 시저 암호 (0) | 2023.03.08 |