728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제는 길지만 잘 읽어보면 문자열을 탐색해서 조건에 맞게 처리해주면 된다.
switch/case문을 사용했다.
점수 저장 변수(= score)를 int로 선언했더니 에러가 났는데,
찾아보니 두 자릿수인 10을 고려해서 String으로 저장하길래 String으로 바꿨다.
아래는 문제 풀이 코드이다.
import java.util.*;
class Solution {
public int solution(String dartResult) {
int answer = 0;
// 점수 저장 변수
String score = "";
// 총 3번의 기회에서 얻은 점수 저장 배열
int arr[] = new int[3];
int idx = 0;
// 숫자일 때는 score 변수에 점수를 저장하고,
// 그 외 문자열이 입력되는 경우 알맞게 처리해준다.
for (int i=0; i<dartResult.length(); i++) {
switch(dartResult.charAt(i)) {
case 'S' :
arr[idx] = Integer.parseInt(score);
idx++;
score = "";
break;
case 'D' :
arr[idx] = (int)Math.pow(Integer.parseInt(score),2);
idx++;
score = "";
break;
case 'T' :
arr[idx] = (int)Math.pow(Integer.parseInt(score),3);
idx++;
score = "";
break;
case '*' :
arr[idx-1] *= 2;
if (idx > 1) arr[idx-2] *= 2;
break;
case '#' :
arr[idx-1] *= (-1);
break;
default :
score += String.valueOf(dartResult.charAt(i));
break;
}
}
answer = arr[0] + arr[1] + arr[2];
return answer;
}
}
728x90
'Algorithms > programmers' 카테고리의 다른 글
Programmers, [3차] 방금그곡 : Java (0) | 2022.12.08 |
---|---|
Programmers, 오픈채팅방 : Java (0) | 2022.12.07 |
Programmers, [1차] 뉴스 클러스터링 : Java (0) | 2022.12.06 |
Programmers, [1차] 캐시 : Java (0) | 2022.12.02 |
Programmers, [1차] 비밀지도 : Java (0) | 2022.12.02 |