알고리즘 테스트 공부
코드 처리하기
&u_na&
2023. 12. 14. 22:20
class Solution {
public String solution(String code) {
int mode = 0;
String ret="";
for(int i=0; i<code.length(); i++){
if(mode == 0){
if( code.charAt(i) != '1' && i % 2 == 0){
ret += code.charAt(i) ;
}else if(code.charAt(i)== '1'){
mode = 1;
}
}else if(mode == 1){
if( code.charAt(i) != '1' && i % 2 != 0){
ret += code.charAt(i) ;
}else if(code.charAt(i)== '1'){
mode = 0;
}
}
}
if(ret.isEmpty()){
return "EMPTY";
}else{
return ret ;
}
}
}
문자비교시 배열로 착각해서 [i]로 사용한점 정신차리기!!
String으로 저장된 문자열 중에서 한 글자만 선택해서 char타입으로 변환해주는 녀석
code.charAt(i)== '1' 오늘의 킥포인트
🐸 다른사람 코드
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);
}
return "".equals(answer) ? "EMPTY" : answer;
}
}
if (code.charAt(i) == '1') mode = 1 - mode;
현재 문자가 '1'인 경우 모드를 토글합니다. 즉, 0은 1로, 1은 0으로 바뀝니다.
else if (i % 2 == mode) answer += code.charAt(i);
현재 문자가 '1'이 아니고, 모드에 따라 문자를 선택해야 하는 경우, answer에 현재 문자를 추가합니다. 모드 값과 인덱스의 홀짝 여부를 비교하여 문자 선택 규칙을 적용합니다.
return "".equals(answer) ? "EMPTY" : answer;
결과 문자열이 비어있는 경우 "EMPTY"를 반환하고, 그렇지 않은 경우 결과 문자열을 반환합니다.