프로그래밍공부/알고리즘

카카오톡 코딩테스트 - 다트게임

2020. 8. 4. 08:56

2018년 카카오톡 코딩테스트 문제를 풀어봤다.

https://programmers.co.kr/learn/courses/30/lessons/17682

 

코딩테스트 연습 - [1차] 다트 게임

 

programmers.co.kr

 

문자열을 잘 풀면 되는 문제였다.

import java.util.Stack;

class Solution {
    public int solution(String dartResult) {
        int answer = 0;
        String[] strs=dartResult.split("");
        int beforeTemp=0;
        int temp=0;
        Stack<Integer> stack=new Stack<Integer>();
        boolean beforeNumber = false;
        for(String str:strs){
            if(str.equals("*")){
                if(stack.size()>=2){
                    int number1=stack.pop();
                    int number2=stack.pop();
                    number1*=2;
                    number2*=2;
                    stack.push(number2);
                    stack.push(number1);
                    beforeNumber=false;
                }else{
                    int number=stack.pop();
                    number*=2;
                    stack.push(number);
                }
            }else if(str.equals("#")){
                int number = stack.pop();
                number*=-1;
                stack.push(number);
                beforeNumber=false;
            }else if(str.equals("S")){
                beforeNumber=false;
                continue;
            }else if(str.equals("D")){
                int number = stack.pop();
                number*=number;
                stack.push(number);
                beforeNumber=false;
            }else if(str.equals("T")){
                int number = stack.pop();
                number=number*number*number;
                stack.push(number);
                beforeNumber=false;
            }else{
                if(beforeNumber){
                    String strTemp=String.valueOf(stack.pop());
                    stack.push(Integer.parseInt(strTemp+str));
                    beforeNumber=false;
                }else{
                    stack.push(Integer.parseInt(str));
                    beforeNumber=true;
                }
                
            } 
        }
        while(!stack.empty()){
            answer+=stack.pop();
        }
        
        return answer;
    }
}

-끝-

'프로그래밍공부 > 알고리즘' 카테고리의 다른 글

코딩테스트 - 파일명 정렬  (0) 2020.08.04
코딩테스트 - 문자열 압축  (0) 2020.08.04
코딩테스트 - K번째수  (0) 2020.08.03
코딩테스트 - 알고리즘 공부 - 베스트앨범  (2) 2020.07.28
코딩테스트 - 알고리즘 - 다리를 지나는 트럭  (0) 2020.07.28
'프로그래밍공부/알고리즘' 카테고리의 다른 글
  • 코딩테스트 - 파일명 정렬
  • 코딩테스트 - 문자열 압축
  • 코딩테스트 - K번째수
  • 코딩테스트 - 알고리즘 공부 - 베스트앨범
중랑구보안관
중랑구보안관
이것저것 기록하기 위한 블로그 ^-^
중랑구보안관
중랑구보안관의 기록블로그
중랑구보안관
전체
오늘
어제
  • 분류 전체보기 (25)
    • 일상 (3)
    • 취미 (2)
      • 게임 (0)
      • 만화 (2)
    • 프로그래밍공부 (19)
      • 파이썬 (6)
      • 자바 (1)
      • 알고리즘 (11)
      • 엘릭서 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 카카오톡
  • 프로그래밍공부
  • 파이썬
  • 프로그래머스
  • 저장용
  • 고려사이버대학교
  • python
  • 자바
  • 코로나
  • 카카오톡코딩테스트
  • 친구와캠핑
  • 공공데이터API
  • 장고프로젝트
  • 토이프로젝트
  • 인터넷보안
  • 동적계획법
  • 코딩테스트
  • lifcycle
  • 정보보안
  • 알고리즘

최근 댓글

최근 글

hELLO · Designed By 정상우.
중랑구보안관
카카오톡 코딩테스트 - 다트게임
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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