1. 문제
2. 제출 답안
3. 다른 풀이
class Solution {
public String solution(String code) {
String answer = "";
int mode = 0; // 0 또는 1의 값을 가지고, 현재 모드를 나타냄
for (int i = 0; i < code.length(); i++) { // 문자열 code를 인덱스 i 이용해 반복
if (code.charAt(i) == '1') mode = 1 - mode; // 현재 문자가 1인지 확인 후 mode 전환
else if (i % 2 == mode) answer += code.charAt(i); // 아니라면 i와 mode가 일치하는지 확인하여 추가
}
return "".equals(answer) ? "EMPTY" : answer;
}
}
가장 깔끔한 풀이인 것 같다.
mode가 0인 경우 => i가 짝수 인덱스여야 함
mode가 1인 경우 => i가 홀수 인덱스여야 함
이 조건을 충족시 answer문자열에 현재 문자가 추가, 문자열 반복
class Solution {
public String solution(String code) {
StringBuilder answer = new StringBuilder();
int mode = 0;
for (int i = 0; i < code.length(); i++) {
char current = code.charAt(i);
if (current == '1') { // 현재 문자가 1이면 mode 전환
mode = mode == 0 ? 1 : 0;
continue;
}
if (i % 2 == mode) { // i가 mode와 일치하는지 확인
answer.append(current); // 현재 문자가 answer 문자열에 추가
}
}
return answer.length() == 0 ? "EMPTY" : answer.toString();
}
}
위와 거의 동일하지만 약간은 다른...
StringBuilder를 사용하여 결과 문자열을 생성한다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.0 주사위 게임2(Java) (0) | 2023.10.25 |
---|---|
[프로그래머스] Lv.0 등차수열의 특정한 항만 더하기(Java) (1) | 2023.10.25 |
[프로그래머스] Lv.0 flag에 따라 다른 값 반환하기(Java) (0) | 2023.10.23 |
[프로그래머스] Lv.0 조건 문자열(Java) ※ (1) | 2023.10.23 |
[프로그래머스] Lv.0 홀짝에 따른 다른 값 반환하기(Java) ※ (0) | 2023.10.23 |