강의로 돌아가기
정성연

5,6,7,10 번 틀리시는분

문자열로 각 자리 비교하실때

s[i] ==0 이 아니라
s[i] == '0' 으로 비교 하셔야해용

작성중인 코드―solution.cpp
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
#include <string>
#include <vector>
#include <iostream>
using namespace std;

int solution(vector<vector<int>> baseball) {
    int answer = 0;
    string n;
    string bn;
    int s,b;
    for(int i = 123 ;i <= 987 ; i++ ){
        n = to_string(i);
        if(n[0] == '0' || n[1] =='0' || n[2] =='0' )
            continue;
        if(n[0] ==n[1] || n[1] ==n[2] || n[2] ==n[0])
            continue;

        for(int j = 0;j <baseball.size();j++){
            s = 0;b = 0;
            bn = to_string(baseball[j][0]);
            if(bn[0] == n[0]) s++;
            if(bn[1] == n[1]) s++;
            if(bn[2] == n[2]) s++;
            if(s != baseball[j][1]) break;

            if(bn[0] == n[1] || bn[0] == n[2]) b++;
            if(bn[1] == n[2] || bn[1] == n[0]) b++;
            if(bn[2] == n[0] || bn[2] == n[1]) b++;
            if(b != baseball[j][2]) break;

            if(j == baseball.size()-1){
                answer++;
                cout << n << endl;
            }

        }       

    }

    return answer;
}
1 개의 답변
Demi

좋은 팁 감사합니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.