티스토리 뷰

#include <string>
#include <vector>

using namespace std;

int solution(vector<vector<int>> baseball) {
    int answer = 0;
    int first, second, third;

    for(int i = 123; i <= 987; i++) {     
        first = i / 100;
        second = (i % 100) / 10;
        third = i % 10;

        if(first == 0 || second == 0 || third == 0)
            continue;
        if (first == second || second == third || third == first)
            continue;

        int count = 0;
        for(int j = 0; j < baseball.size(); j++) {
            int strike = 0, ball = 0;

            if(first == baseball[j][0] / 100)
                strike++;
            else if(first == (baseball[j][0] % 100) / 10 || first == baseball[j][0] % 10)
                ball++;
            if(second == (baseball[j][0] % 100) / 10)
                strike++;
            else if(second == baseball[j][0] / 100 || second == baseball[j][0] % 10)
                ball++;
            if(third == baseball[j][0] % 10)
                strike++;
            else if(third == baseball[j][0] / 100 || third == (baseball[j][0] % 100) / 10)
                ball++;

            if(strike == baseball[j][1] && ball == baseball[j][2])
                count++;
        }
        if(count == baseball.size())
            answer++;
    }

    return answer;
}

풀이: 2~3시간?
코딩+디버깅: 2시간

 

숫자 야구!
풀이 시간에 물음표가 붙은 이유는 이게 두 번째 시도라 확신하기 어렵기 때문이다. 첫 번째엔 3s 0b, 2s 0b, 1s 2b... 모든 경우의 수를 고려하는 풀이를 구했는데 진짜 아닌 것 같아서 구현은 안했다. 두 번째엔 strike와 ball에 대해 각각 3부터 0까지를 if문으로 만들어 돌렸다. 풀 때는 빨리 풀어버리고 싶어서 이거면 된다고 생각했는데 코드로 짜니까 답이 달랐다. 예외를 하나씩 찾으며 코드에 추가하는데 예외가 한 둘이 아니었다. 마치... 천동설을 주장하기위해 수많은 주전원을 찾아내는 천문학자가 된 기분이었다. 그 풀이도 아닌 것 같았다는 말이지...


결국 구글링했다. 푸신 분 풀이를 보니 strike와 ball의 수에 따라 작업을 하지 않고 각각의 수를 먼저 센 후 비교하셨다. 난 이 방식이 놀라웠다. 내 입장에서는 발상의 전환인 셈이라. 이런게 센스인가? 정말! 센스없게! 누가 그렇게 삽질을 하니! 바로 내가!


어떻게 풀었든 오래 시달린 만큼 꼭... 글을 남겨야겠다고 생각했다... 솔직히 당분간 보고싶지 않지만 그래서 더 정리해야만 한다... 이 모자람을 꼭 기억해서 다시 고생하지 않도록... 아... 당떨어져...

'프로그래밍 > 문제풀이' 카테고리의 다른 글

[BOJ] 9465 스티커  (0) 2020.02.21
[프로그래머스] 단어 변환  (0) 2020.02.11
[BOJ] 1260 DFS와 BFS  (0) 2020.02.03
[BOJ] 11724 연결 요소의 개수  (0) 2020.02.03
[BOJ] 11047 동전 0  (0) 2020.01.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함