프로그래밍 공방

[프로그래머스] 다트 게임 본문

개발/문제해결

[프로그래머스] 다트 게임

hyosupsong 2021. 2. 10. 19:25

문제

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

 

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

 

programmers.co.kr

문제해결방법

다트를 던진 순서대로 옵션을 반영해서 점수를 계산해주었다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package Programmers;
 
public class Solution_다트게임 {
 
    public static int pow(int score, char type) {
        if(type=='D') score*=score;
        else if(type=='T') score*=score*score;
        return score;
    }
    
    public static int solution(String dartResult) {
        int[] dartScores = new int[4];
        int dartCount = 1;
        int dartScore = 0;
        for(int i=0; i<dartResult.length(); i++) {
            char ch = dartResult.charAt(i);
            if(ch>='0' && ch<='9') {
                dartScore*=10;
                dartScore+=(ch-'0');
            } else if(ch=='S' || ch=='D' || ch=='T') {
                dartScores[dartCount] = pow(dartScore, ch);
                dartScore = 0;
                dartCount++;
            }
            else {
                if(ch=='*') {
                    dartScores[dartCount-1*= 2;
                    dartScores[dartCount-2*= 2;
                } else dartScores[dartCount-1*= -1;
            }
        }
        int answer = dartScores[1]+dartScores[2]+dartScores[3];
        return answer;
    }
    
    public static void main(String[] args) {
        String dartResult = "1D2S#10S";
        System.out.println(solution(dartResult));
    }
}
cs


코드에 대한 피드백이나 더 좋은 아이디어는 언제나 환영입니다.

'개발 > 문제해결' 카테고리의 다른 글

[프로그래머스] 방금그곡  (0) 2021.02.10
[프로그래머스] 실패율  (0) 2021.02.10
[프로그래머스] 메뉴 리뉴얼  (0) 2021.02.08
[백준] 5676번 : 음주 코딩  (0) 2021.02.05
[프로그래머스] 순위 검색  (0) 2021.02.04