망공부/코딩테스트
[프로그래머스] 코드 처리하기 (Java)
moonmm
2023. 11. 19. 15:01
문제설명


풀이
class Solution {
public String solution(String code) {
String ret = "";
int mode=0;
for(int i=0; i< code.length(); i++){
if(code.charAt(i)== '1'){ //문자가 1일때
mode= 1-mode; //모드변경 0이면 1로, 1이면 0으로
}else if(i%2 == mode) ret +=code.charAt(i);
}
return ret.length() == 0 ? "EMPTY" : ret;
}
}
mode가 0일땐 짝수 인덱스의 문자를 ret에 추가
mode가 1일땐 홀수 인덱스의 문자를 ret에 추가
mode= 1-mode; //이 코드는 앞으로도 0과 1을 번갈아 사용해야할 경우 용이하게 쓸 것 같음
else if(i%2 == mode) ret +=code.charAt(i); // mode에 따라 알맞는 인덱스의 문자를 추가
return 에서는 삼항연산자를 사용하였습니다
삼항연산자가 궁금하시다면
시간복잡도
O(N)
N은 입력 문자열 code의 길이
주어진 문자열 code를 한 번 반복하면서 각 문자를 처리하므로, 시간 복잡도는 입력의 크기에 선형으로 비례한다
각 반복에서 수행되는 연산은 상수 시간이 걸린다
결과 화면
