Programmers_JAVA_컨트롤 제트

2022. 11. 24. 17:16· 코딩테스트/Programmers_LV0
반응형

문제 설명

숫자들이 공백으로 구분된 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 “Z”가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 “Z”로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.


제한사항
  • 0 < s의 길이 < 1,000
  • -1,000 < s의 원소 중 숫자 < 1,000
  • s는 숫자, "Z", 공백으로 이루어져 있습니다.
  • s에 있는 숫자와 "Z"는 서로 공백으로 구분됩니다.
  • 연속된 공백은 주어지지 않습니다.
  • 0을 제외하고는 0으로 시작하는 숫자는 없습니다.
  • s의 시작과 끝에는 공백이 없습니다.
  • 모든 숫자를 지우는 경우는 주어지지 않습니다.
  • 지울 숫자가 없는 상태에서 "Z"는 무시합니다.

ArrayList에 더한 값들을 스택처럼 관리하였다.  Stack 컬렉션을 사용하면 더욱 편리하고 메모리 상 이득을 많이 보긴 한다.

import java.util.ArrayList;
class Solution {
    public int solution(String s) {
        int answer = 0;
        ArrayList<Integer> Z = new ArrayList<>();
        int Z_count = 0;

        //String을 String 배열로 변환
        String[] s_arr = s.split(" ");

        for(int i = 0; i<s_arr.length;i++){
            //요소 중 숫자라면
            if(!s_arr[i].equals("Z")){
		//숫자 더함
                answer+=Integer.parseInt(s_arr[i]);
                //더한 숫자 Z배열에 넣음
                Z.add(Integer.parseInt(s_arr[i]));
            }
            else{
                if(i!=0){
                	//Z배열의 (크기-1)의 인덱스를 빼주었다 -> 스택과 같은 기능
                    answer-=Integer.parseInt(Z.get(Z.size()-1).toString());
                    //빼준 인덱스 값 제거
                    Z.remove(Z.size()-1);
                }
            }
        }
        return answer;
    }
}

 

반응형

'코딩테스트 > Programmers_LV0' 카테고리의 다른 글

Programmers_JAVA_최빈값 구하기  (0) 2022.11.25
Programmers_JAVA_저주의 숫자 3  (0) 2022.11.24
Programmers_JAVA_유한소수 판별하기  (0) 2022.11.24
Programmers_JAVA_직사각형 넓이 구하기  (0) 2022.11.23
Programmers_JAVA_삼각형의 완성 조건_2  (0) 2022.11.23
'코딩테스트/Programmers_LV0' 카테고리의 다른 글
  • Programmers_JAVA_최빈값 구하기
  • Programmers_JAVA_저주의 숫자 3
  • Programmers_JAVA_유한소수 판별하기
  • Programmers_JAVA_직사각형 넓이 구하기
wn1331
wn1331
반응형
wn1331
JONGHUN
wn1331
전체
오늘
어제
  • 분류 전체보기 (268)
    • Spring (16)
      • Spring Data JPA (0)
      • Spring Security (11)
      • Spring Batch (5)
    • DEV (40)
      • FrontEnd (2)
      • JAVA (5)
      • Git (1)
      • 기타 (6)
      • Network (1)
      • MSA (12)
      • 개발일기 || 트러블슈팅 (5)
      • 행사 || 후기 (3)
      • GraphQL (3)
      • Kotlin (0)
      • Database (2)
    • 코딩테스트 (164)
      • Programmers_LV0 (100)
      • Programmers_LV1 (54)
      • 백준 (8)
      • Algorithm (1)
    • 교육 | 외부활동 (44)
      • 이론_JAVA (13)
      • ORACLE (12)
      • PUBLISHING (6)
      • JAVASCRIPT (5)
      • JQuery (0)
      • 항해99 플러스 백엔드 (8)
    • 기본지식 (0)
    • 끄적끄적 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 학부생(용인대학교 컴퓨터과학과 1~4학년) 네이버 블로그는⋯

인기 글

태그

  • java
  • 세션
  • JPA
  • 항해플러스
  • 항해99
  • Spring Boot
  • 항플 백엔드
  • 스프링
  • 스프링 시큐리티
  • spring security
  • SESSION
  • transaction
  • 스프링 부트
  • 압축
  • Spring Batch
  • MSA
  • Spring
  • Step
  • 항플
  • MySQL

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
wn1331
Programmers_JAVA_컨트롤 제트
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.