Algorithms/Programmers

[Programmers] 혼자서 하는 틱택토

징토리 2023. 3. 7. 17:00

문제 조건

  • O가 선공, X가 후공
  • O가 항상 X보다 1 많아야함
  • X가 이긴 경우 X의 갯수와 O의 갯수는 같음
  • 조건에 따른 O의 갯수와 X의 갯수를 생각한 엣지케이스를 잘 생각해보기

문제 풀이

  1. 주어진 board 배열을 2차원 배열로 바꿔주며, O의 갯수와 X의 갯수를 센다.
  2. 만약 X의 갯수가 O의 갯수보다 많으면 0을 리턴
  3. O의 갯수와 X의 갯수가 1보다 더 많이 차이나면 0을 리턴
  4. (0,0)이 .이 아니고, (1,1)과 (2,2)가 같은 경우 ↘방향으로 틱택도 완성인 경우
    -> O가 이긴 경우와
    X가 이긴 경우의 O갯수와 X갯수 체크 후
    -> 올바른 틱택토이면 1, 아니면 0 리턴
  5. (0,2)이 .이 아니고, (1,1)과 (2,0)가 같은 경우 ↙방향으로 틱택도 완성인 경우
    -> O가 이긴 경우와 
    X가 이긴 경우의 O갯수와 X갯수 체크
    -> 올바른 틱택토이면 1, 아니면 0 리턴
  6. 가로열을 다 채워서 틱택토를 만드는 경우를 확인 하기 위해 For문
    -> O가 이긴 경우와 X가 이긴 경우의 O갯수와 X갯수 체크
    -> 가로열이 채워진 틱택토이면 boolean으로 상황 저장, 아니면 0 리턴
  7. 세로열을 다 채워서 틱택토를 만드는 경우를 확인 하기 위해 For문
    -> O가 이긴 경우와 
    X가 이긴 경우의 O갯수와 X갯수 체크
    -> 가로열이 채워진 틱택토이면 boolean으로 상황 저장, 아니면 0 리턴
  8. O와 X가 둘 다 틱택도가 완성 된 상황이라면 갯수로 검증해주자.

https://school.programmers.co.kr/learn/courses/30/lessons/160585

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

'Algorithms > Programmers' 카테고리의 다른 글

[Programmers] 연속 펄스 부분 수열의 합  (2) 2023.03.07
[Programmers] 대충 만든 자판  (0) 2023.03.07
[Programmers] 카드 뭉치  (0) 2023.03.07
[Programmers] 인사고과  (0) 2023.01.20
[Programmers] 디펜스 게임  (0) 2022.12.09