파이썬 질문드립니다.

조회수 694회

이런 간단한 문제를 풀고 있는데 흠 잘 안되네요 .. 도와주세요 ㅠㅠ 실행하면 soso가 나오네요 .... 그리고 원래 사람수 입력해야되는데 그건 일단 테스트 해보느라 함수 파라미터 값에 3을 넣어줬어요

[입력] 첫 번째 줄에 설문조사를 한 사람의 수 N (1 ≤ N ≤ 101, N은 홀수)가 주어진다. 다음 N개의 줄에는 각 줄마다 각 사람이 설문 조사에 어떤 의견을 표명했는지를 나타내는 정수가 주어진다. 0은 준희가 귀엽지 않다고 했다는 뜻이고, 1은 준희가 귀엽다고 했다는 뜻이다.

[출력] 준희가 귀엽지 않다는 의견이 더 많을 경우 "Junhee is not cute!"를 출력하고 귀엽다는 의견이 많을 경우 "Junhee is cute!"를 출력하라.

예제

입력

3
1
0
0

출력 Junhee is not cute!

 def isJunheeCute(people) :
    choice = 0
    result = []
    noCute = 0
    yesCute = 0

    if people % 2 != 0 :
        while people < 0:
            choice = int(input("귀엽다1, 안귀엽다 0"))
            result.append(choice)
            people = people -1

        for i in result:
            if result[i] ==0:
                noCute = noCute +1
            else :
                yesCute = yesCute +1
        if noCute > yesCute:
            print("junhee is not cute")
        elif noCute<yesCute:
            print("junhee is yes cute")
        else:
            print("soso")

    else:
        print("홀수명만 참가합니다")


isJunheeCute(3)

이미지

1 답변

  • 방금 잘 작동하는 코드를 짜보았고 대략의 힌트만 드리겠습니다.

    1. "so so"가 출력되면 안 됩니다. 주어진 문제는 "(N은 홀수)"라고 규정하고 있습니다. 따라서 그 처리가 들어가야 합니다. 즉 사용자가 홀수가 아닌 무엇인가를 입력할 때의 예외 처리가 있어야 하지요.
    2. 이 투표는 찬반 투표입니다. "귀엽지 않다"라는 표는 "귀엽다"에 대한 반대표이기 때문이죠. 그렇다면 이 투표는 어느 쪽이든 과반수를 얻는 쪽이 이깁니다. 예컨대 7명이 1표씩을 행사하는 경우라면 7/2 = 3.5표 이상을 받는 쪽이 이기는 것이죠. 음... 왠지 갑자기 "찬성"을 1, "반대"를 0이라고 부르고 싶어지는데... 왜지??!!

    여기서부터는 본인의 숙제! 한번 시도해 보세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)