๐Ÿ’ป

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ๋‹คํŠธ ๊ฒŒ์ž„ ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ œํ’€์ด Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ๋‹คํŠธ ๊ฒŒ์ž„

๋˜ํšจ๋‹ˆ 2020. 5. 7. 01:37

๋ฌธ์ œ ์„ค๋ช…

๋‹คํŠธ ๊ฒŒ์ž„

์นด์นด์˜คํ†ก์— ๋œฌ ๋„ค ๋ฒˆ์งธ ๋ณ„! ์‹ฌ์‹ฌํ•  ๋•? ์นด์นด์˜คํ†ก ๊ฒŒ์ž„๋ณ„~

์•„์ด์œ  ์ด์˜๋‹ค...โญ๏ธ

์นด์นด์˜คํ†ก ๊ฒŒ์ž„๋ณ„์˜ ํ•˜๋ฐ˜๊ธฐ ์‹ ๊ทœ ์„œ๋น„์Šค๋กœ ๋‹คํŠธ ๊ฒŒ์ž„์„ ์ถœ์‹œํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‹คํŠธ ๊ฒŒ์ž„์€ ๋‹คํŠธํŒ์— ๋‹คํŠธ๋ฅผ ์„ธ ์ฐจ๋ก€ ๋˜์ ธ ๊ทธ ์ ์ˆ˜์˜ ํ•ฉ๊ณ„๋กœ ์‹ค๋ ฅ์„ ๊ฒจ๋ฃจ๋Š” ๊ฒŒ์ž„์œผ๋กœ, ๋ชจ๋‘๊ฐ€ ๊ฐ„๋‹จํžˆ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
๊ฐ“ ์ž…์‚ฌํ•œ ๋ฌด์ง€๋Š” ์ฝ”๋”ฉ ์‹ค๋ ฅ์„ ์ธ์ •๋ฐ›์•„ ๊ฒŒ์ž„์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์ธ ์ ์ˆ˜ ๊ณ„์‚ฐ ๋กœ์ง์„ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‹คํŠธ ๊ฒŒ์ž„์˜ ์ ์ˆ˜ ๊ณ„์‚ฐ ๋กœ์ง์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  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

์ž…์ถœ๋ ฅ ์˜ˆ์ œ

์˜ˆ์ œ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

 

https://programmers.co.kr/learn/courses/30/lessons/17682

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

์ƒ๊ฐ

์ •๋‹ต๋ฅ ์ด ๋ฌด๋ ค 73ํผ์„ผํŠธ์ธ ๊ฑธ ๋ณด๋‹ˆ 18๋…„ ์นด์นด์˜ค๊ธฐ์ถœ ๋ฌธ์ œ์—์„œ ์ œ์ผ ๋‚œ์ด๋„๊ฐ€ ๋‚ฎ์•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์ˆœ์„œ์™€ ์กฐ๊ฑด๋“ค์„ ๋ณด๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

 

๊นŒ๋‹ค๋กœ์šด ์กฐ๊ฑด๋“ค์ด ์žˆ์—ˆ๋‹ค.

์ฒซ๋ฒˆ์งธ๋กœ, *์ผ ๋•Œ์˜ ์ฒ˜๋ฆฌ

๋‘๋ฒˆ์งธ๋กœ, ์ ์ˆ˜๊ฐ€ 10์ ์ผ ๋•Œ

 

์ด ๋‘๊ฐ€์ง€ ์กฐ๊ฑด๋“ค์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ง€์—์„œ ๋ง‰ํž˜์ด ์žˆ์—ˆ๋‹ค.

* ์„ค๋ช…์ธ 5, 6๋ฒˆ์ด ํ˜ผ๋ž€์„ ์ฃผ์—ˆ๋Š”๋ฐ ์˜ˆ์ œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ดํ•ดํ–ˆ๋‹ค.

 

๋‹คํŠธ๊ฒŒ์ž„์˜ 3๋ฒˆ์˜ ๊ธฐํšŒ๋Š” score[] ์ ์ˆ˜๋ฐฐ์—ด๋กœ ๋‘์—ˆ๋‹ค.

idx๋ฅผ ๊ฒŒ์ž„ํšŸ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜์˜€๋‹ค. 

 

cnt๋ณ€์ˆ˜๋Š” ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ๋ฌธ์ž์—ด ํ•œ ์„ธํŠธ ์•ˆ์—์„œ ์ ์ˆ˜, ๋ณด๋„ˆ์Šค, ์˜ต์…˜ ์ˆœ์œผ๋กœ ์ฒดํฌํ•ด์ฃผ๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜์ด๋‹ค.

(์ œ์ถœํ•˜๊ณ  ๋‚˜์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ cnt๋ฅผ ๋”ฐ๋กœ ๋นผ์„œ ์„ ์–ธํ•ด์ฃผ์ง€ ์•Š๊ณ  for๋ฌธ ์•ˆ์— int ์ดˆ๊ธฐํ™” ํ•  ๋•Œ ๊ฐ™์ด ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ๋‹ค.)

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€, 

์ฒซ๋ฒˆ์งธ ์กฐ๊ฑด์€ ์ด์ „ ์ ์ˆ˜๋„ *2๋ฐฐ์ฒ˜๋ฆฌ ํ•ด์ค€๋‹ค.

๋‘๋ฒˆ์งธ ์กฐ๊ฑด์€ cnt๊ฐ€ 2์ผ๋•Œ(ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๋‘๋ฒˆ์งธ ์ˆ˜๊ฐ€ S,D,T ๊ฐ€ ์•„๋‹Œ 0์ผ ๋•Œ) ์ ์ˆ˜๋ฅผ 10์œผ๋กœ ๋„ฃ์–ด์ฃผ๊ณ  cnt๋ฅผ ํ•˜๋‚˜ ๋นผ์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  cnt๊ฐ€ 3์ผ๋•Œ ์˜ต์…˜์ด ์—†์„ ๋•Œ(*, # ์ด ์•„๋‹ ๋•Œ) i๋ฅผ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๊ฒƒ๋„ ์žŠ์ง€ ๋ง์•„์•ผํ•œ๋‹ค.

 

 

์ž‘์„ฑํ•œ ์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <vector>
#include <cmath>
#include <string>
 
using namespace std;
 
int solution(string dartResult) {
    int answer = 0;
    int score[3= {0, };   //์ ์ˆ˜๋ฐฐ์—ด
    int idx = 0;
    int cnt = 1;
 
    for(int i=0; i<dartResult.length(); i++){
        char c = dartResult[i];
        if(cnt == 1){
            score[idx] += c - '0';
            cnt ++;
        }else if(cnt == 2){
            if(c == 'S'){
                score[idx] = pow(score[idx], 1);
            }else if(c == 'D'){
                score[idx] = pow(score[idx], 2);
            }else if(c == 'T'){
                score[idx] = pow(score[idx], 3);
            }else if(c == '0'){ //10์ธ ๊ฒฝ์šฐ
                score[idx] = 10;
                cnt--;
            }
            cnt ++;
        }
        else if(cnt == 3){
            if (c == '*'){
                score[idx] *= 2;
                if(idx -1 >= 0){
                    score[idx-1*= 2;
                }
            }else if(c == '#'){
                score[idx] *= (-1);
            }else { //์—†๋Š” ๊ฒฝ์šฐ
                i--;
            }
            
            cnt = 1;
            idx++;
        }
    }
    answer = score[0+ score[1+ score[2];
    return answer;
}
 
Colored by Color Scripter
๋ฐ˜์‘ํ˜•
Comments