티스토리 뷰
문제 설명
숫자 야구 게임이란 2명이 서로가 생각한 숫자를 맞추는 게임입니다. 게임해보기
각자 서로 다른 1~9까지 3자리 임의의 숫자를 정한 뒤 서로에게 3자리의 숫자를 불러서 결과를 확인합니다. 그리고 그 결과를 토대로 상대가 정한 숫자를 예상한 뒤 맞힙니다.
* 숫자는 맞지만, 위치가 틀렸을 때는 볼 * 숫자와 위치가 모두 맞을 때는 스트라이크 * 숫자와 위치가 모두 틀렸을 때는 아웃
예를 들어, 아래의 경우가 있으면
A : 123 B : 1스트라이크 1볼. A : 356 B : 1스트라이크 0볼. A : 327 B : 2스트라이크 0볼. A : 489 B : 0스트라이크 1볼.
이때 가능한 답은 324와 328 두 가지입니다.
질문한 세 자리의 수, 스트라이크의 수, 볼의 수를 담은 2차원 배열 baseball이 매개변수로 주어질 때, 가능한 답의 개수를 return 하도록 solution 함수를 작성해주세요.
제한사항
- 질문의 수는 1 이상 100 이하의 자연수입니다.
- baseball의 각 행은 [세 자리의 수, 스트라이크의 수, 볼의 수] 를 담고 있습니다.
입출력 예
baseballreturn
[[123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1]] | 2 |
입출력 예 설명
문제에 나온 예와 같습니다.
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#include <string>
#include <vector>
using namespace std;
bool isStrike(int i, int baseball, int strike) {
int num = 0;
string si = to_string(i);
string sbaseball = to_string(baseball);
for (int j = 0; j < si.size(); j++) {
num++;
}
}
if (num == strike) {
return true;
}
else {
return false;
}
}
bool isBall(int i, int baseball, int ball) {
int num = 0;
string si = to_string(i);
string sbaseball = to_string(baseball);
for (int j = 0; j < si.size(); j++) {
for (int k = 0; k < sbaseball.size(); k++) {
num++;
}
}
}
if (num == ball) {
return true;
}
else {
return false;
}
}
int solution(vector<vector<int>> baseball) {
int answer = 0;
for (int i = 123; i <= 987; i++) {
// 숫자에 0 들어가지 않게
string test_i = to_string(i);
continue;
}
// 숫자에 같은 숫자 중복되지 않게
if ((test_i.at(0) == test_i.at(1)) || (test_i.at(0) == test_i.at(2)) || (test_i.at(1) == test_i.at(2))) {
continue;
}
// check 초기화
int check = 1;
for (int j = 0; j < baseball.size(); j++) {
// 스트라이크, 볼 둘 중에 하나라도 틀리면 check에 0 곱함
if ((!isStrike(i, baseball[j][0], baseball[j][1])) || (!isBall(i, baseball[j][0], baseball[j][2]))) {
check *= 0;
}
}
// check가 0이 아니면 answer++
if (check != 0) {
answer++;
}
}
return answer;
}
|
'Dev.CodingTest > Programmers' 카테고리의 다른 글
[프로그래머스 c++] 구명보트 (0) | 2019.09.16 |
---|---|
[프로그래머스 c++] 예산 (0) | 2019.09.16 |
[프로그래머스 c++] 네트워크 (0) | 2019.09.05 |
[프로그래머스 c++] 서울에서 경산까지 (0) | 2019.09.05 |
[프로그래머스 c++] 정수 삼각형 (0) | 2019.09.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- aws
- 깊이우선탐색
- ec2
- 컬렉션
- c++
- 스위프트
- 호제법
- 서머코딩
- dfs
- ios
- 자료구조
- Swift
- Programmers
- 삼성역량테스트
- 코딩테스트
- dp
- SummerCoding
- BFS
- 알고리즘
- 백준
- Collection
- algorithm
- Xcode
- datastructure
- 프로그래머스
- 이진트리
- 시뮬레이션
- count
- 구슬탈출
- isempty
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함