[SWEA] 영감탱 가만 안둬 [PYTHON]

6332 단어 SWEASWEA

췤코 이뿌네,,,
2년 전에 갔다 왔다는 것도 가물가물하다

BABY JIN

진촤 베이비진 ㅂㄷㅂㄷ

0~9 사이의 숫자카드에서 임의의 카드 6장을 뽑았을 때, 3장의 카드가 연속적인 번호를 갖는 경우를 run이라 하고,
3장의 카드가 동일한 번호를 갖는 경우를 triplet이라고 한다.

그리고 6장의 카드가 run과 triplet으로만 구성된 경우를 baby-gin으로 부른다.

6자리의 숫자를 입력을 받아 baby-gin 여부를 판단하는 프로그램을 작성하라.

베이비진이 맞다면 1을 아니라면 0을 출려하여라...

입력

첫줄에는 테스트케이스 개수가 주어지고, 이후 6장의 카드가 주어진다.

출력

#(테케번호) (정답) 형식으로 출력할것.

라이브 쉅 때 스륵 배워서 쓸 수 있을 것이라 생각했다.
첫번째 오류는 제일 첫 자리가 0임에도 줄기차게 int만 사용했던 것.
% 10을 해서 다시 더해줘야 0도 살아나는 것인디 말이다.

두번째, continue를 이해하지 못한 것. 만약 667766이라면 첫번째 if문을 2번 돌아야하는데 사실은 아직 이해가 가지 않음. continue 없으면 오답이 나더라. 오 아니다
만약 숫자가 666666일 때의 상황을 생각해보거라. i에 1이 더해져서 while문이 한 번 더 돌기 전에 if문을 한 번 더 돌아야하지 않겠니

for tc in range(1, int(input())+1):
    num = int(input())
    c = [0] * 12

    for k in range(6):
        c[num%10] += 1
        num //= 10

    i = tri = ruun = 0

    while i < 10:

        if c[i] >= 3:
            c[i] -= 3
            tri += 1
            continue

        if c[i] >= 1 and c[i+1] >= 1 and c[i+2] >= 1:
            c[i] -= 1
            c[i+1] -= 1
            c[i+2] -= 1
            ruun += 1
            continue
        i += 1

    if tri + ruun == 2:
        print(f'#{tc} 1')
    else:
        print(f'#{tc} 0')

비록 내가 생각한 것은 아니지만 다시 짜는데 엄청 오래걸렸다.
역시 컴퓨터는 잘못이 없다.
내 잘못이었구나,,ㅎ

좋은 웹페이지 즐겨찾기