[프로그래머스,Level 1] 다트 게임(JAVA 구현)

2021. 1. 7. 12:55·CodingTest/프로그래머스(Programmers)
반응형

- 첫 풀이 및 정답풀이

  조금만 생각해보면 간단하게 풀 수 있는 문제인 것 같다. 문제에서 제시하고 있는 조건에 따라 적절하게 처리를 해주면 된다.

class Solution {
    public int solution(String dartResult) {
        int answer = 0;
        
        String temp = ""; // 문자열 내 1번의 점수 저장 변수
        int arr[] = new int[3]; // 3번의 점수를 저장할 배열
        int idx = 0; // 배열을 참조하기 위한 idx
        
        // 1. dartResult 문자열 탐색.
        for(int i = 0;i<dartResult.length();i++){
            // 1-1. 문자열의 각 문자에 따라 조건 처리.
            switch(dartResult.charAt(i)){
                // 1-2. *인 경우는 자신과 이전의 점수 *2, idx는 S,D,T 처리 후 증가하기 때문에 idx-1, idx-2 후 *2    
                case '*':
                    arr[idx-1]*=2;
                    if(idx >1) arr[idx-2]*=2;
                    break;
                // 1-3. #은 자신의 점수를 음수로 만든다.                 
                case '#':
                    arr[idx-1]*=-1;
                    break;
                // 1-4. S는 1제곱, 다음 점수를 위해 idx를 증가시키고 정수를 저장하는 temp를 초기화.    
                case 'S':
                    arr[idx] = (int)Math.pow(Integer.parseInt(temp),1);
                    idx++;
                    temp ="";
                    break;
                // 1-5. D는 2제곱, 다음 점수를 위해 idx를 증가시키고 정수를 저장하는 temp를 초기화.    
                case 'D':
                    arr[idx] = (int)Math.pow(Integer.parseInt(temp),2);
                    idx++;
                    temp ="";
                    break;
                // 1-6. T는 3제곱, 다음 점수를 위해 idx를 증가시키고 정수를 저장하는 temp를 초기화.                   
                case 'T':
                    arr[idx] = (int)Math.pow(Integer.parseInt(temp),3);
                    idx++;
                    temp ="";
                    break;
                // 1-7. 그 외의 정수들은 temp 변수에 저장해 둔다.    
                default:
                    temp+=String.valueOf(dartResult.charAt(i));
                    break;                    
            } 
        }
        
        // 2. 위 과정을 통해 구한 각 횟수의 점수를 모두 더하면 정답.
        for(int i =0;i<arr.length;i++){
            answer+=arr[i];
        }
        
        return answer;
    }
}

 

저작자표시 (새창열림)
'CodingTest/프로그래머스(Programmers)' 카테고리의 다른 글
  • [프로그래머스,Level 2] 스킬트리 (JAVA 구현)
  • [프로그래머스,Level 2]124 나라의 숫자(JAVA 구현)
  • [프로그래머스,Level 1] 실패율(JAVA 구현)
  • [프로그래머스,Level 1] 비밀지도(JAVA 구현)
뜸부깅
뜸부깅
코딩에 대한 여러 개인적인 생각을 정리하고 공부를 하는 공간입니다!!
  • 뜸부깅
    코오오딩
    뜸부깅
  • 전체
    오늘
    어제
    • Note (429)
      • Skill (31)
        • Java & Spring (9)
        • Javascript & HTML & CSS (0)
        • React (0)
        • Next.js (22)
      • CodingTest (389)
        • 백준 온라인 저지(BOJ) (140)
        • 프로그래머스(Programmers) (79)
        • LeetCode (170)
      • Algorithm & Data Structure (6)
      • [Project] 포트폴리오 (3)
        • Front end (3)
        • Back end (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    백준7576자바
    medium
    백준7576
    프로그래머스
    백준
    백준1427
    알고리즘
    백준1260
    TypeScript
    leetcode 2236
    meidum
    자바
    component-scan
    Easy
    boj1427
    BOJ
    boj2108
    백준2751
    Java
    next 14
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜸부깅
[프로그래머스,Level 1] 다트 게임(JAVA 구현)
상단으로

티스토리툴바