ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2018 KAKAO BLIND RECRUITMENT] [1μ°¨] λ‹€νŠΈ κ²Œμž„ - Level1
    곡뢀/μ•Œκ³ λ¦¬μ¦˜ 2022. 12. 7. 21:20
    728x90

    πŸ“λ¬Έμ œ μ„€λͺ… 

    μΉ΄μΉ΄μ˜€ν†‘μ— 뜬 λ„€ 번째 별! 심심할 땐? μΉ΄μΉ΄μ˜€ν†‘ κ²Œμž„λ³„~

    μΉ΄μΉ΄μ˜€ν†‘ κ²Œμž„λ³„μ˜ ν•˜λ°˜κΈ° μ‹ κ·œ μ„œλΉ„μŠ€λ‘œ λ‹€νŠΈ κ²Œμž„μ„ μΆœμ‹œν•˜κΈ°λ‘œ ν–ˆλ‹€. λ‹€νŠΈ κ²Œμž„μ€ λ‹€νŠΈνŒμ— λ‹€νŠΈλ₯Ό μ„Έ μ°¨λ‘€ 던져 κ·Έ 점수의 ν•©κ³„λ‘œ μ‹€λ ₯을 κ²¨λ£¨λŠ” κ²Œμž„μœΌλ‘œ, λͺ¨λ‘κ°€ κ°„λ‹¨νžˆ 즐길 수 μžˆλ‹€.
    κ°“ μž…μ‚¬ν•œ λ¬΄μ§€λŠ” μ½”λ”© μ‹€λ ₯을 인정받아 κ²Œμž„μ˜ 핡심 뢀뢄인 점수 계산 λ‘œμ§μ„ 맑게 λ˜μ—ˆλ‹€. λ‹€νŠΈ κ²Œμž„μ˜ 점수 계산 λ‘œμ§μ€ μ•„λž˜μ™€ κ°™λ‹€.

    1. λ‹€νŠΈ κ²Œμž„μ€ 총 3번의 기회둜 κ΅¬μ„±λœλ‹€.
    2. 각 κΈ°νšŒλ§ˆλ‹€ 얻을 수 μžˆλŠ” μ μˆ˜λŠ” 0μ μ—μ„œ 10μ κΉŒμ§€μ΄λ‹€.
    3. μ μˆ˜μ™€ ν•¨κ»˜ Single(S), Double(D), Triple(T) μ˜μ—­μ΄ μ‘΄μž¬ν•˜κ³  각 μ˜μ—­ 당첨 μ‹œ μ μˆ˜μ—μ„œ 1제곱, 2제곱, 3제곱 (점수^1 , 점수^2 , 점수^3 )으둜 κ³„μ‚°λœλ‹€.
    4. μ˜΅μ…˜μœΌλ‘œ μŠ€νƒ€μƒ(*) , 아차상(#)이 μ‘΄μž¬ν•˜λ©° μŠ€νƒ€μƒ(*) 당첨 μ‹œ ν•΄λ‹Ή μ μˆ˜μ™€ λ°”λ‘œ 전에 얻은 점수λ₯Ό 각 2배둜 λ§Œλ“ λ‹€. 아차상(#) 당첨 μ‹œ ν•΄λ‹Ή μ μˆ˜λŠ” λ§ˆμ΄λ„ˆμŠ€λœλ‹€.
    5. μŠ€νƒ€μƒ(*)은 첫 번째 κΈ°νšŒμ—μ„œλ„ λ‚˜μ˜¬ 수 μžˆλ‹€. 이 경우 첫 번째 μŠ€νƒ€μƒ(*)의 점수만 2λ°°κ°€ λœλ‹€. (예제 4번 μ°Έκ³ )
    6. μŠ€νƒ€μƒ(*)의 νš¨κ³ΌλŠ” λ‹€λ₯Έ μŠ€νƒ€μƒ(*)의 νš¨κ³Όμ™€ 쀑첩될 수 μžˆλ‹€. 이 경우 μ€‘μ²©λœ μŠ€νƒ€μƒ(*) μ μˆ˜λŠ” 4λ°°κ°€ λœλ‹€. (예제 4번 μ°Έκ³ )
    7. μŠ€νƒ€μƒ(*)의 νš¨κ³ΌλŠ” 아차상(#)의 νš¨κ³Όμ™€ 쀑첩될 수 μžˆλ‹€. 이 경우 μ€‘μ²©λœ 아차상(#)의 μ μˆ˜λŠ” -2λ°°κ°€ λœλ‹€. (예제 5번 μ°Έκ³ )
    8. Single(S), Double(D), Triple(T)은 μ μˆ˜λ§ˆλ‹€ ν•˜λ‚˜μ”© μ‘΄μž¬ν•œλ‹€.
    9. μŠ€νƒ€μƒ(*), 아차상(#)은 μ μˆ˜λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ§Œ μ‘΄μž¬ν•  수 있으며, μ‘΄μž¬ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλ‹€.

    0~10의 μ •μˆ˜μ™€ 문자 S, D, T, *, #둜 κ΅¬μ„±λœ λ¬Έμžμ—΄μ΄ μž…λ ₯될 μ‹œ 총점수λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜λΌ.

    μž…λ ₯ ν˜•μ‹

    "점수|λ³΄λ„ˆμŠ€|[μ˜΅μ…˜]"으둜 이루어진 λ¬Έμžμ—΄ 3μ„ΈνŠΈ.
    예) 1S2D*3T

    • μ μˆ˜λŠ” 0μ—μ„œ 10 μ‚¬μ΄μ˜ μ •μˆ˜μ΄λ‹€.
    • λ³΄λ„ˆμŠ€λŠ” S, D, T 쀑 ν•˜λ‚˜μ΄λ‹€.
    • μ˜΅μ„ μ€ *μ΄λ‚˜ # 쀑 ν•˜λ‚˜μ΄λ©°, 없을 μˆ˜λ„ μžˆλ‹€.

    좜λ ₯ ν˜•μ‹

    3번의 κΈ°νšŒμ—μ„œ 얻은 점수 합계에 ν•΄λ‹Ήν•˜λŠ” μ •μˆ˜κ°’μ„ 좜λ ₯ν•œλ‹€.
    예) 37

    ν…μŠ€νŠΈλ‘œ ν•˜λ‹ˆ λ‹€ κΉ¨μ Έμ„œγ…‘

     πŸ”Ž 처음 μƒκ°ν•œ 아이디어  

    쑰건에 맞게 처리만 ν•΄μ£Όλ©΄ 될 거라 μƒκ°ν–ˆλŠ”λ°

    μ˜΅μ…˜μ΄ 생각보닀 κΉŒλ‹€λ‘œμ› λ‹€.

    배열에 μ €μž₯ν•˜μ§€ μ•Šκ³  ν’€λ €κ³  ν–ˆμ§€λ§Œ 였히렀 더 λ³΅μž‘ν•΄μ§€λŠ” 것 κ°™μ•„ 크기가 3인 배열에 각 점수λ₯Ό μ €μž₯ν•˜κ³ 

    쑰건과 μ˜΅μ…˜μ— 맞게 μ²˜λ¦¬ν•œλ‹€.

     

    μ‹ κ²½ 써주어야 ν•  점은

    μ μˆ˜κ°€ 10도 λ“€μ–΄μ˜€λ―€λ‘œ ν•œ κΈ€μžμ”© μ²˜λ¦¬ν–ˆμ„ λ•Œ λ°œμƒν•  수 μžˆλŠ” μ˜ˆμ™Έ μ²˜λ¦¬ν•΄μ£Όκ³  κ²€μ‚¬ν•˜λŠ” μΈλ±μŠ€λ„ +1 ν•΄μ£Όκ³ 

    'S' , 'D' , 'T'λ₯Ό μ²˜λ¦¬ν•  λ•Œ 

    λ‹€μŒ κΈ€μžκ°€

    '*' : μ•ž λ°°μ—΄μ˜ μ μˆ˜μ™€ ν˜„μž¬ λ°°μ—΄μ˜ 점수 2λ°°    

    '#' : ν˜„μž¬ λ°°μ—΄μ˜ 점수 음수둜 λ³€κ²½

    을 ν•΄μ„œ ν’€μ—ˆλ‹€.

     

     βœοΈ μž‘μ„±ν•œ μ½”λ“œ 

    class Solution {
        public int solution(String dartResult) {
           int answer = 0;
    		int score = 0;
    		int arr[] = new int[3];
    		int index = 0;
    
    		// 1. string을 ν•œκΈ€μžμ”© μ ‘κ·Όν•˜λ©΄μ„œ ν•΄κ²°ν•œλ‹€.
    		for (int i = 0; i < dartResult.length(); i++) {
    
    			char c = dartResult.charAt(i);
    			
    			if (Character.isDigit(c)) { // 숫자인 경우 
    
    				// 10인(λ‘κΈ€μž) 경우 
    				if (i < dartResult.length() - 1 && Character.isDigit(dartResult.charAt(i + 1))) { 
    					score = 10;
    					i++;
    				} 
    				else	score = Character.getNumericValue(c); //ν•œ κΈ€μž 숫자인 경우
    			} 
    			else { // 문자인 경우
    
    				if (c == 'S') arr[index] = score;
    				else if (c == 'D') arr[index] = (int) Math.pow(score, 2);
    				else if (c == 'T') arr[index] = (int) Math.pow(score, 3);
    
    				if (i < dartResult.length() - 1 && dartResult.charAt(i + 1) == '#') {
    					arr[index] *= (-1);
    					i++;
    				} 
    				else if (i < dartResult.length() - 1 && dartResult.charAt(i + 1) == '*') {
    					arr[index] *= 2;
    					
    					if (index > 0) arr[index - 1] *= 2;
    						
    					i++;
    				}
    				
    				index++;
    
    			}
    
    		}
    
    		answer = arr[0] + arr[1] + arr[2];
    		//System.out.println("μ •λ‹΅: " + answer);
    		return answer;
    	
        }
    }

     

     πŸ– μ•Œκ²Œ 된 점 

    Character.isDigit(char c) 

    string이 μ•„λ‹ˆλΌ char을 κ²€μ‚¬ν•˜λŠ” κ±°λΌλŠ” κ±Έ.. μ™œ 계속 κΉŒλ¨Ήμ§€!!!!!!!!!!!

     

     

    λ‚˜λŠ” 바보

     

     

     

     

    λŒ“κΈ€

Designed by Tistory.