노트에 계속 풀어보다 정답으로 간 문제. 그래서 테스트 케이스를 엄청 추가했다.
추가한 테스트 케이스들
Parameters | Return |
["OOX", "XXO", "OXO"] | 1 |
["XXX", "XXX", "XXX"] | 0 |
["OOO", "X.X", "..."] | 1 |
["..O", "...", "..."] | 1 |
[".X.", "...", "..."] | 0 |
[".OX", "OXO", "XO."] | 0 |
["XXX", ".OO", "O.."] | 1 |
["XXX", "XOO", "OOO"] | 0 |
["OX.", "...", "..."] | 1 |
혼자서 하는 택택토 문제
내 코드
using System;
public class Solution {
public int solution(string[] board) {
int answer = 1;
int xCount = 0;
int oCount = 0;
int oWin = 0;
int xWin = 0;
for (int i = 0; i < board.Length; i++)
{
for (int j = 0; j < board[i].Length; j++)
{
if (board[i][j] == 'O')
{
oCount += 1;
}
else if (board[i][j] == 'X')
{
xCount += 1;
}
}
}
for (int i = 0; i < 3; i++)
{
if (board[i] == "OOO")
{
oWin += 1;
}
else if (board[i] == "XXX")
{
xWin += 1;
}
else if(board[0][i] == 'O' && board[1][i] == 'O' && board[2][i] == 'O')
{
oWin += 1;
}
else if (board[0][i] == 'X' && board[1][i] == 'X' && board[2][i] == 'X')
{
xWin += 1;
}
else if (board[0][0] == 'O' && board[1][1] == 'O' && board[2][2] == 'O')
{
oWin += 1;
}
else if (board[0][0] == 'X' && board[1][1] == 'X' && board[2][2] == 'X')
{
xWin += 1;
}
else if (board[0][2] == 'O' && board[1][1] == 'O' && board[2][0] == 'O')
{
oWin += 1;
}
else if (board[0][2] == 'X' && board[1][1] == 'X' && board[2][0] == 'X')
{
xWin += 1;
}
}
if(oCount < xCount)
{
answer =0;
}
if(oCount > xCount +1)
{
answer =0;
}
if(oWin + xWin > 1)
{
if(oWin> 1 && oCount -xCount == 1)
{
answer =1;
}
else
{
answer =0;
}
}
if (xWin == 1 && oCount > xCount)
{
answer = 0;
}
if(oWin == 1 && oCount == xCount)
{
answer = 0;
}
return answer;
}
}
728x90
'코딩테스트_c# > 프로그래머스' 카테고리의 다른 글
프로그래머스 ) 연습문제 - 야근지수 Level3_C# (0) | 2024.02.19 |
---|---|
프로그래머스 ) 코딩테스트 연습 - 숫자게임 Level.3_C# (0) | 2024.02.19 |
프로그래머스 ) 연습문제 - 대충 만든 자판 Level.1 _C# (1) | 2024.02.14 |
프로그래머스 ) 연습문제 - 덧칠하기 Level.1_C# (0) | 2024.02.14 |
프로그래머스 ) 연습문제 - 바탕화면 정리 Level.1 _C# (0) | 2024.02.14 |