코드 처리하기
<코드>
class Solution {
public String solution(String code) {
String answer = "";
int mode = 0;
for(int i = 0; i < code.length(); i++) {
if(code.charAt(i) == '1'){
mode = 1 - mode;
} else if(i % 2 == mode) {
answer += code.charAt(i);
}
}
if(answer.equals("")) answer = "EMPTY";
return answer;
}
}
<문제 풀이>
주어진 code 문자열의 길이만큼 반복문을 진행한다.
조건문을 통해 문자가 1인지 아닌지 먼저 판단한다. 문자가 1이면 mode를 0 -> 1, 1 -> 0으로 변환한다.
문자가 1이 아니라면, mode == 1 일 때는 홀수번째 문자를 mode == 0 일 때는 짝수번째 문자를 answer의 뒤에 추가한다.
마지막으로 answer의 문자열이 빈 문자열일 경우 "EMPTY"를 넣어준다.
처음 코드를 작성할 때는 mode의 값이 1인지 0인지 판단한 뒤 idx 값이 홀수인지 짝수인지를 다시 판단하고 answer의 뒤에 문자를 추가했는데, 다른 풀이를 참고하니 'i % 2 == mode' 조건식을 사용하여 위의 2개의 조건을 한 번에 찾을 수 있었다.
'프로그래머스' 카테고리의 다른 글
[코딩테스트 연습] 문자열 여러 번 뒤집기 - Lv.0 (0) | 2023.05.16 |
---|---|
[코딩테스트 연습] 배열 만들기 2 - Lv.0 (0) | 2023.05.08 |
[코딩테스트 연습] 수열과 구간쿼리2 - Lv.0 (0) | 2023.05.06 |
[코딩테스트 연습] 영어가 싫어요 - Lv.0 (0) | 2023.05.06 |
[코딩테스트 연습] 문자열 겹쳐쓰기 - Lv.0 (0) | 2023.05.04 |