본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 2][Python] 4447번 : 좋은놈 나쁜놈

by 빛밤하늘 2021. 4. 14.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

4447번: 좋은놈 나쁜놈

비키니시티에는 초능력을 가진 수퍼 히어로들로 바글바글하다. 스폰지밥과 패트릭은 주어진 문자열로 좋은놈과 나쁜놈을 골라내려 한다. 스폰지밥: 우와, 문자열에서 강한 힘이 느껴지는데!

www.acmicpc.net

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# 첫 줄에는 테스트 케이스 n을 입력합니다.
# n > 0
n = int(input())

# 테스트 케이스의 수만큼 반복해봅니다.
for i in range(n):
    # 히어로의 이름을 입력합니다.
    hero_name = input()
    
    # 히어로의 이름에서 g와 G의 개수를 저장하는 변수를 선언합니다.
    gG_count = hero_name.count('g') + hero_name.count('G')
    # 히어로의 이름에서 b와 B의 개수를 저장하는 변수를 선언합니다.
    bB_count = hero_name.count('b') + hero_name.count('B')

    # g와 G의 개수가 b와 B의 개수보다 많다면
    if gG_count > bB_count:
        # 히어로 이름 is GOOD으로 출력합니다.
        print(f"{hero_name} is GOOD")
    # g와 G의 개수가 b와 B의 개수보다 적다면
    elif gG_count < bB_count:
        # 히어로 이름 is A BADDY로 출력합니다.
        print(f"{hero_name} is A BADDY")
    # g와 G의 개수가 b와 B의 개수와 같다면
    else:
        # 히어로 이름 is NEUTRAL로 출력합니다.
        print(f"{hero_name} is NEUTRAL")

결과

 

처음에 제출할 때 is A BADDY에서 A를 빼먹고 제출해서 틀렸습니다 결과가 나왔습니다.

고작 한 글자 차이로 정답과 오답이 갈릴 수 있으니 주의 깊게 살펴봐야된다는 교훈을 얻었습니다.

심지어 위와 같이 문자열을 최종 출력하는 부분에서는 문법이 틀린 것이 아니라

단순히 출력 방식이 틀린 것이라 디버깅 하는 것도 어려울 것 같습니다.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글