728x90
반응형
출처 : https://programmers.co.kr/learn/courses/30/lessons/17682
코딩테스트 연습 - [1차] 다트 게임
programmers.co.kr
입력 형식
점수|보너스|[옵션]으로 이루어진 문자열 3세트.
예) 1S2D*3T
- 점수는 0에서 10 사이의 정수이다.
- 보너스는 S, D, T 중 하나이다.
- 옵선은 *이나 # 중 하나이며, 없을 수도 있다.
출력 형식
3번의 기회에서 얻은 점수 합계에 해당하는 정수값을 출력한다.
예) 37
입출력 예제
예제dartResultanswer설명
1 | 1S2D*3T | 37 | 11 * 2 + 22 * 2 + 33 |
2 | 1D2S#10S | 9 | 12 + 21 * (-1) + 101 |
3 | 1D2S0T | 3 | 12 + 21 + 03 |
4 | 1S*2T*3S | 23 | 11 * 2 * 2 + 23 * 2 + 31 |
5 | 1D#2S*3S | 5 | 12 * (-1) * 2 + 21 * 2 + 31 |
6 | 1T2D3D# | -4 | 13 + 22 + 32 * (-1) |
7 | 1D2S3T* | 59 | 12 + 21 * 2 + 33 * 2 |
카카오 신입 공채 1차 코딩 테스트 문제 해설
‘블라인드’ 전형으로 실시되어 시작부터 엄청난 화제를 몰고 온 카카오 개발 신입 공채. 그 첫 번째 관문인 1차 코딩 테스트가 지난 9월 16일(토) 오후 2시부터 7시까지 장장 5시간 동안 온라인��
tech.kakao.com
class Solution {
public int solution(String dartResult) {
int answer = 0;
int[] num = new int[3];
int cnt = 0;
for(int i=0; i<dartResult.length(); i++) {
if(dartResult.charAt(i)<='9' && dartResult.charAt(i) >= '0'){
if(dartResult.charAt(i) == '1' && dartResult.charAt(i+1) == '0') {
num[cnt++] = 10;
i++;
}
else num[cnt++] = dartResult.charAt(i) - '0';
if(cnt == 3) break;
}
}
String[] arr = dartResult.split("[0-9]");
for(int i=0; i<3; i++) System.out.println(num[i] + arr[i]);
cnt = 0;
int i=0;
while(cnt != arr.length) {
if(arr[cnt].equals("")) {
cnt++;
continue;
}
else {
for(int j=0; j<arr[cnt].length(); j++) {
switch(arr[cnt].charAt(j)) {
case 'D' :
num[i] *= num[i];
break;
case 'T' :
num[i] *= num[i]*num[i];
break;
case '*' :
num[i] *= 2;
if(i!=0) num[i-1] *= 2;
break;
case '#' :
num[i] *= -1;
break;
}
}
i++;
cnt++;
}
}
for(i=0; i<3; i++) {
answer += num[i];
}
return answer;
}
}
*StringTokenizer은 정규식이 불가능함.
*split과 StringTokenizer의 차이점은 StringTokenizer은 공백인 문자열을 자동으로 삭제해줌.
*정규식 [^0-9] 에서 ^은 제외의 의미
728x90
반응형
'알고리즘 > 문제 풀이 (출처: 프로그래머스)' 카테고리의 다른 글
[JAVA] 카펫_프로그래머스 level 2 (0) | 2020.09.12 |
---|---|
[JAVA] 위장_프로그래머스 level 2 (0) | 2020.09.12 |
[JAVA][DP] 정수 삼각형_programmers level 3 (0) | 2020.09.11 |
[JAVA][SORT] H-Index_프로그래머스 level 2 (0) | 2020.08.29 |
[JAVA][UNION-FIND] 네트워크_프로그래머스 level 3 (0) | 2020.08.28 |