숫자 야구라는 타이틀만 보고 우리가 종종 해오던 쉬운 게임이라 생각하고 문제를 읽었더니, 알고리즘으로 짜기에는 복잡해보였다. 먼저 1~9의 숫자 중에서 선택을 해야했기 때문에 3자리 숫자 중 각 숫자에 맞게 겹치는 숫자들이 없어야하며, 0도 포함해서는 안됐었다.
먼저 각 숫자를 뽑아내기 위해 10의 제곱으로 나눠 각 자리의 수를 뽑는 방식을 택했었다. 그리고 배열에 넣고, 다른 숫자들과 비교하는 식으로 하였다.
Strike는 각 자리에 맞아야하며, 두 숫자가 동일해야하고, Ball은 각 자리가 틀려야하며 두 숫자가 동일해야하므로 그에 맞게 조건문을 맞혀주었다.
개선해야할 점 : 각 숫자를 추출해내기 위해서 노가다 방식으로 일일히 다 뽑아내었는데 to_String을 사용하여 쉽게 뽑아낼 수 있다는 사실.
조금은 더 깔끔하게 index를 설정하고 변수명을 설정해주자.
소스 위치: https://github.com/withseungryu/Algorithms/blob/master/BackJoon/baseballGame.cpp
반응형
'Algorithm > Problem and Strategies' 카테고리의 다른 글
[백준] 10942번 - 팰린드롬? (2) | 2020.02.16 |
---|---|
[백준] 1725번 히스토그램 & [프알문] 울타리 잘라내기 (0) | 2020.01.29 |
[백준] 1780번 종이의 개수 (0) | 2020.01.25 |
[백준] 1012번 유기농 배추 (0) | 2020.01.23 |
프.알.문-무식하게 풀기<소풍> (0) | 2019.01.11 |