[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
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • Algorithm Study (39)
      • JAVA (8)
      • Swift (11)
      • Python (21)
      • CS (5)
      • React (3)
      • 리얼클래스 studylog (27)
      • 정보처리기사[실기] (23)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바