๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/programmers

[programmers] ์™„์ „ํƒ์ƒ‰, ์ˆซ์ž ์•ผ๊ตฌ

by dar0m! 2020. 3. 11.
 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž ์•ผ๊ตฌ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[[123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1]] 2

programmers.co.kr

 

๋ฌธ์ œ

๊ฐ์ž ์„œ๋กœ ๋‹ค๋ฅธ 1~9๊นŒ์ง€ 3์ž๋ฆฌ ์ž„์˜์˜ ์ˆซ์ž๋ฅผ ์ •ํ•œ ๋’ค ์„œ๋กœ์—๊ฒŒ 3์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋ถˆ๋Ÿฌ์„œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ† ๋Œ€๋กœ ์ƒ๋Œ€๊ฐ€ ์ •ํ•œ ์ˆซ์ž๋ฅผ ์˜ˆ์ƒํ•œ ๋’ค ๋งžํž™๋‹ˆ๋‹ค.

  • ์ˆซ์ž๋Š” ๋งž์ง€๋งŒ, ์œ„์น˜๊ฐ€ ํ‹€๋ ธ์„ ๋•Œ๋Š” ๋ณผ
  • ์ˆซ์ž์™€ ์œ„์น˜๊ฐ€ ๋ชจ๋‘ ๋งž์„ ๋•Œ๋Š” ์ŠคํŠธ๋ผ์ดํฌ
  • ์ˆซ์ž์™€ ์œ„์น˜๊ฐ€ ๋ชจ๋‘ ํ‹€๋ ธ์„ ๋•Œ๋Š” ์•„์›ƒ

์ œํ•œ์‚ฌํ•ญ

  • ์งˆ๋ฌธ์˜ ์ˆ˜๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • baseball์˜ ๊ฐ ํ–‰์€ [์„ธ ์ž๋ฆฌ์˜ ์ˆ˜, ์ŠคํŠธ๋ผ์ดํฌ์˜ ์ˆ˜, ๋ณผ์˜ ์ˆ˜] ๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธํ•œ ์„ธ ์ž๋ฆฌ์˜ ์ˆ˜, ์ŠคํŠธ๋ผ์ดํฌ์˜ ์ˆ˜, ๋ณผ์˜ ์ˆ˜๋ฅผ ๋‹ด์€ 2์ฐจ์› ๋ฐฐ์—ด baseball์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ€๋Šฅํ•œ ๋‹ต์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

ํ•ด๊ฒฐ

ket point, ๊ฐ์ž ์„œ๋กœ ๋‹ค๋ฅธ 1~9๋ผ๋Š” ๋ง์—์„œ 3์ž๋ฆฌ ์ˆซ์ž๋Š” ์„œ๋กœ ๋‹ค๋ฅด๊ณ  0์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  1. 123๋ถ€ํ„ฐ 987๊นŒ์ง€์˜ ์ˆ˜ ์ค‘ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ˆซ์ž ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅธ๋‹ค.
  2. ์ด๋•Œ ์„ธ ์ž๋ฆฌ ์ˆซ์ž๋Š” ์„œ๋กœ ๊ฐ™์„ ์ˆ˜ ์—†๊ณ , 0์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.
  3. ์งˆ๋ฌธ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค์— ์ ‘๊ทผํ•˜์—ฌ ํ•ด๋‹น ์งˆ๋ฌธ์— ๋Œ€ํ•ด์„œ ์„ ํƒํ•œ ์ˆซ์ž์™€ ์ŠคํŠธ๋ผ์ดํฌ ์ˆ˜์™€, ๋ณผ ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  4. ์—ฌ๋Ÿฌ ์งˆ๋ฌธ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ŠคํŠธ๋ผ์ดํฌ ์ˆ˜์™€ ๋ณผ์˜ ์ˆ˜๊ฐ€ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด ์งˆ๋ฌธ ๋ฐฐ์—ด ํƒ์ƒ‰์„ ์ค‘์ง€ํ•˜๊ณ  ๋‹ค์Œ ์ˆซ์ž๋ฅผ ์„ ํƒํ•œ๋‹ค.
  5. ๋ชจ๋“  ์งˆ๋ฌธ์„ ํ†ต๊ณผํ•œ๋‹ค๋ฉด answer์˜ ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ชจ๋“  ๋ฐ˜๋ณต๋ฌธ์„ ๊ฑฐ์น˜๊ณ ๋‚˜๋ฉด answer์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋‹ต์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 ์ฝ”๋“œ

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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
int solution(vector<vector<int>> baseball) {
    int answer = 0;
 
    for (int i = 123; i <= 987; i++) {
        string num = to_string(i);
        if (num[0== '0' || num[1== '0' || num[2== '0'continue;
        if (num[0== num[1|| num[1== num[2|| num[2== num[0]) continue;
        bool flg = false;
        for (int i = 0; i < baseball.size(); i++) {
            int bb = baseball[i][0], strike = baseball[i][1], ball = baseball[i][2];
            string ballnum = to_string(bb);
            int s = 0, b = 0;
            for (int j = 0; j < 3; j++) {
                for (int k = 0; k < 3; k++) {
                    if (ballnum[j] == num[k]) {
                        if (j == k) {
                            s++;
                        }
                        else {
                            b++;
                        }
                    }
                }
            }
            if (strike != s || ball != b) {
                flg = truebreak;
            }
        }
        if (!flg)answer++;
    }
    return answer;
}
cs

๋Œ“๊ธ€