https://school.programmers.co.kr/learn/courses/30/lessons/181932
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
문자열 code가 주어집니다.code를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode를 바꿉니다. mode에 따라 code를 읽어가면서 문자열 ret을 만들어냅니다.
mode는 0과 1이 있으며, idx를 0 부터 code의 길이 - 1 까지 1씩 키워나가면서 code[idx]의 값에 따라 다음과 같이 행동합니다.
mode가 0일 때code[idx]가 "1"이 아니면idx가 짝수일 때만ret의 맨 뒤에code[idx]를 추가합니다.code[idx]가 "1"이면mode를 0에서 1로 바꿉니다.
mode가 1일 때code[idx]가 "1"이 아니면idx가 홀수일 때만ret의 맨 뒤에code[idx]를 추가합니다.code[idx]가 "1"이면mode를 1에서 0으로 바꿉니다.
문자열 code를 통해 만들어진 문자열 ret를 return 하는 solution 함수를 완성해 주세요.
단, 시작할 때 mode는 0이며, return 하려는 ret가 만약 빈 문자열이라면 대신 "EMPTY"를 return 합니다.
제한사항
- 1 ≤
code의 길이 ≤ 100,000code는 알파벳 소문자 또는 "1"로 이루어진 문자열입니다.
입출력 예
| code | result |
|---|---|
| "abc1abc1abc" | "acbac" |
입출력 예 #1
code의 각 인덱스i에 따라 다음과 같이mode와ret가 변합니다.
| i | code[i] | mode | ret |
|---|---|---|---|
| 0 | "a" | 0 | "a" |
| 1 | "b" | 0 | "a" |
| 2 | "c" | 0 | "ac" |
| 3 | "1" | 1 | "ac" |
| 4 | "a" | 1 | "ac" |
| 5 | "b" | 1 | "acb" |
| 6 | "c" | 1 | "acb" |
| 7 | "1" | 0 | "acb" |
| 8 | "a" | 0 | "acba" |
| 9 | "b" | 0 | "acba" |
| 10 | "c" | 0 | "acbac" |
따라서 "acbac"를 return 합니다.
풀이
class Solution {
public String solution(String code) {
String ret = "";
boolean mode = false;
for(int i=0; i<code.length(); i++){
char c = code.charAt(i);
if(c == '1') {
mode = !mode;
continue;
}
if(!mode && i%2==0){
ret += c;
} else if(mode && i%2==1){
ret += c;
}
}
return ret.isEmpty() ? "EMPTY" : ret;
}
}
다른사람 풀이다.
for문 안 2번째 조건문을 매우 간단하게 바꾸었다.
if (i % 2 == mode) {
answer.append(current);
}
coding_test/프로그래머스/0/181932. 코드 처리하기 at main · gajicoding/coding_test
This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - gajicoding/coding_test
github.com
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
'코딩 테스트 (Java) > 코딩 기초 트레이닝 (프로그래머스)' 카테고리의 다른 글
| 181930. 주사위 게임 2 (0) | 2025.04.03 |
|---|---|
| 181931. 등차수열의 특정한 항만 더하기 (0) | 2025.04.03 |
| 181933. flag에 따라 다른 값 반환하기 (0) | 2025.04.02 |
| 181934. 조건 문자열 (0) | 2025.04.02 |
| 181935. 홀짝에 따라 다른 값 반환하기 (0) | 2025.04.02 |