[Java Algorithm] 프로그래머스 Lv.0 _ 코드 처리하기

2024. 10. 30. 17:24·Algorithm Study

[문제]

문자열 code 가 주어집니다.
code를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode를 바꿉니다. mode에 따라 code를 읽어가면서 문자열 ret을 만들어냅니다. 
mode는 0과 1이 있으며, idx를 0부터 code의 길이 - 1까지 1씩 키워나가면서 code[idx]의 값에 따라 다음과 같이 행동합니다.

1. mode가 0일 때
- code[idx]가 "1"이 아니면 idx가 짝수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다.
- code[idx]가 "1"이면 mode를 0에서 1로 바꿉니다.

2. 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 합니다.

 

[Algorithm]

1. code를 배열 형태로 만들기

2. for문과 if문을 통해 각 조건에 알맞게 로직 구성

 

[Code]

class Solution {
    public String solution(String code) {
        String answer = "";
        int mode = 0;
        char[] arr = code.toCharArray();
        
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == '1') {
                mode = 1 - mode;
            } else if (i % 2 == mode) {
                answer += arr[i] + "";
            }
        }
      
        return answer.length() == 0 ? "EMPTY" : answer;
    }
}

 

 

[+ 다른 사람 풀이]

class Solution {
    public String solution(String code) {
        StringBuilder answer = new StringBuilder();
        int mode = 0;
        for (int i = 0; i < code.length(); i++) {
            char current = code.charAt(i);
            if (current == '1') {
                mode = mode == 0 ? 1 : 0;
                continue;
            }

            if (i % 2 == mode) {
                answer.append(current);
            }
        }
        return answer.length() == 0 ? "EMPTY" : answer.toString();
    }
}

 

💡 if(i % 2 == mode) { answer.append(current) }

➡️ 대박 코드 ;;

저작자표시 변경금지 (새창열림)

'Algorithm Study' 카테고리의 다른 글

[Java Algorithm] 프로그래머스 Lv.0 _ 수열과 구간 쿼리 3  (1) 2025.02.24
[Java Algorithm] 프로그래머스 Lv.0 _ 등차수열의 특정한 항만 더하기  (2) 2024.10.31
[Java Algorithm] 프로그래머스: 해시 _ 완주하지 못한 선수  (0) 2024.07.11
[Java Algorithm] 프로그래머스: 해시 _ 폰켓몬  (0) 2024.07.11
[Java Algorithm] 프로그래머스 Lv.0 _ 조건 문자열  (1) 2024.03.11
'Algorithm Study' 카테고리의 다른 글
  • [Java Algorithm] 프로그래머스 Lv.0 _ 수열과 구간 쿼리 3
  • [Java Algorithm] 프로그래머스 Lv.0 _ 등차수열의 특정한 항만 더하기
  • [Java Algorithm] 프로그래머스: 해시 _ 완주하지 못한 선수
  • [Java Algorithm] 프로그래머스: 해시 _ 폰켓몬
microsaurs
microsaurs
개발 스터디로그입니다. 공부한 내용을 정리해서 올립니다 ㅇ-ㅇ
  • microsaurs
    microsaurs.devlog
    microsaurs
  • 전체
    오늘
    어제
    • 분류 전체보기 (139) N
      • Side Project (1) N
      • Algorithm Study (39)
      • JAVA (8)
      • Swift (11)
      • Python (21)
      • CS (5)
      • React (3)
      • 리얼클래스 studylog (27)
      • 정보처리기사[실기] (23)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    정보처리기사실기
    자바알고리즘
    ios프로그래밍
    알고리즘
    javaStudy
    javaalgorithm
    타일러영어
    스위프트기초
    더오피스
    정보처리기사프로그래밍언어
    프로그래머스
    Java
    ios개발
    리얼클래스
    Algorithm
    프로그래밍언어
    ios프로그래밍을위한스위프트기초
    study
    정보처리기사
    나도코딩
    영어회화
    파이썬기초
    리얼학습일기
    SWIFT
    The Office
    파이썬문법
    Python
    파이썬
    영어독학
    정처기실기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
microsaurs
[Java Algorithm] 프로그래머스 Lv.0 _ 코드 처리하기
상단으로

티스토리툴바