728x90
언어_ 자바
프로그래머스_코딩 기초 트레이닝_코드 처리하기
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);
}
System.out.println(answer);
return answer.equals("") ? "EMPTY" : answer;
}
}
public class Main {
public static void main(String[] ars) {
Solution s = new Solution();
String code = "abc1abcabc";
s.solution(code);
}
}
조건을 정리하자면,
조건1: code에 "1"이 있으면 mode changed
조건2: mode 0 && i 가 짝수 -> += code[i]
조건3: mode 1 && i 가 홀수 -> += code[i]
조건1을 만족하기 위해서 mode 가 0일때는 1이 나와야하고, 1일때는 0이 나와야한다. 따라서 mode = 1 - mode; 로 조건 설정해준다.
조건 2/3을 만족하기 위해서 풀이하자면 아래와 같다.
mode가 0일때, i%2 == mode는 곧 i가 짝수이면서 mode 역시 짝수 임을 알 수 있다. 따라서 mode의 값으로 홀/짝을 구분할 수 있기에 else if 한 줄로 코드를 줄일 수 있다.
728x90
'Algorithm' 카테고리의 다른 글
[프로그래머스] (181925) 수 조작하기2 (0) | 2023.12.24 |
---|---|
[프로그래머스] (181926) 수 조작하기1 (0) | 2023.12.24 |
[프로그래머스] (181927) 마지막 두 원소 (0) | 2023.12.24 |
[프로그래머스] (181928) 이어 붙인 수 (1) | 2023.12.24 |
[백준](15552) 빠른 A+B (0) | 2023.12.19 |