-
[java] 프로그래머스 다트 게임알고리즘 2023. 8. 10. 11:29
https://school.programmers.co.kr/learn/courses/30/lessons/17682
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution { public int solution(String dartResult) { int answer = 0; int[] score = new int[3]; int idx = 0; String num = ""; for (int i = 0; i < dartResult.length(); i++) { char ch = dartResult.charAt(i); if (ch >= '0' && ch <= '9') { num += String.valueOf(ch); } else if (ch == 'S' || ch == 'D' || ch == 'T') { int s = Integer.parseInt(num); if (ch == 'S') { s = (int) Math.pow(s, 1); } else if (ch == 'D') { s = (int) Math.pow(s, 2); } else if (ch == 'T') { s = (int) Math.pow(s, 3); } score[idx++] = s; num = ""; } else { if (ch == '*') { score[idx - 1] *= 2; if (idx - 2 >= 0) { score[idx - 2] *= 2; } } else { score[idx - 1] *= -1; } } } return score[0] + score[1] + score[2]; } }
메모메모
1.문제를 잘 읽자. 다트게임은 총3번 한다고 했다.
2. 점수가 0~10점까지라고 했으니 num은 String으로 선언해야한다.
3. ch>='0' && ch<='9'
4. (int) Math.pow(num,1)
5. 스타상은 그 전의 점수도 2배를 줄 수 있다 단 두번째 인덱스부터가능
6. 아차상의 점수를 구하려면 *-1을 해야한다.
'알고리즘' 카테고리의 다른 글
[java] 백준 3048 개미 (0) 2023.09.05 [java] 백준 14889 : 스타트와 링크 (0) 2023.08.31 [java] 프로그래머스 크레인 인형뽑기 (0) 2023.08.09 프로그래머스 할인행사 (0) 2023.08.08 [java] 백준 16967 : 배열 복원하기 (0) 2023.08.06