문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181932
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
난이도 : LV0
내 풀이
class Solution {
public String solution(String code) {
String answer = "";
String reg = "";
boolean mode = false;
String[] codeArray = code.split("");
for(int i = 0; i < codeArray.length; i++){
if(codeArray[i].equals("1")){
if(mode) {
mode = false;
} else {
mode = true;
}
continue;
}
if(!mode){
if(i % 2 == 0){
reg += codeArray[i];
}
} else {
if(i % 2 != 0){
reg += codeArray[i];
}
}
}
answer = reg.equals("") ? "EMPTY" : reg;
return answer;
}
}
다른 사람 풀이
class Solution {
public String solution(String code) {
// 결과 문자열을 저장할 StringBuilder 객체 생성
StringBuilder answer = new StringBuilder();
// 문자 필터링 모드 설정 (0 또는 1)
int mode = 0;
for (int i = 0; i < code.length(); i++) {
// 현재 문자 가져오기
char current = code.charAt(i);
// '1'인 경우, 모드 변경
if (current == '1') {
mode = mode == 0 ? 1 : 0;
continue;
}
if (i % 2 == mode) {
answer.append(current);
}
}
return answer.length() == 0 ? "EMPTY" : answer.toString();
}
}
Java StringBuilder Class
- https://www.codejava.net/java-core/the-java-language/why-use-stringbuffer-and-stringbuilder-in-java
- https://codesign.tistory.com/88
Java StringBuilder Method
- .append(): 문자열을 추가
- .length(): 길이를 반환
- .insert(int index, String str): index위치에 문자열을 삽입
- .replace(int start, int end, String str): 지정된 범위 내의 문자열을 주어진 문자열로 대체
...
'코딩테스트 > JAVA' 카테고리의 다른 글
[코딩테스트][JAVA] 수 조작하기 2 (0) | 2024.05.01 |
---|---|
[코딩테스트][JAVA] 주사위 게임 2 (0) | 2024.04.28 |
[코딩테스트][JAVA] 두 수의 연산값 비교하기 (0) | 2024.04.27 |
[코딩테스트][JAVA] 더 크게 합치기 (0) | 2024.04.27 |
[코딩테스트][JAVA] 문자 리스트를 문자열로 변환하기 (0) | 2024.04.27 |