Programmers - [1차] 다트 게임

Programmers - [1차] 다트 게임

반응형

import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Solution { public int solution(String dartResult) { List answer = new ArrayList<>(); char[] darts = dartResult.toCharArray(); int num = 0; for(int i = 0; i < darts.length; i++) { if(Character.isDigit(darts[i])) { num = darts[i] - '0'; if(darts[i] == '1' && darts[i+1] == '0') { num = 10; i += 1; } } else { if(getBonusNum(darts[i]) > -1) { num = (int)Math.pow(num, getBonusNum(darts[i])+1); } else if(darts[i] == '*') { if(answer.size() > 0){ int preNumIndex = answer.size()-1; answer.set(preNumIndex, answer.get(preNumIndex)*2); } num *= 2; } else if(darts[i] == '#') { num *= -1; } if(num != 0 && (i == darts.length-1 || Character.isDigit(darts[i+1]))) { answer.add(num); } } } return answer.stream().mapToInt(Integer::intValue).sum(); } public static int getBonusNum(char ch) { List bonusNum = Arrays.asList('S', 'D', 'T'); if(bonusNum.indexOf(ch) > 0) { return bonusNum.indexOf(ch); } return -1; } }

반응형

from http://namcoding.tistory.com/19 by ccl(S) rewrite - 2021-11-20 06:02:24