본문 바로가기

코딩/Baekjoon

[Baekjoon 백준 29163번] Счастье Мистера Бина(파이썬) 풀이

문제

Недавно Мистер Бин возвращался домой c конференции посвященной 2015 году --- году света и обнаружил, что хулиганы исписали его дверь разными числами.

Мистер Бин любит искать во всем позитив, и в этой ситуации он не растерялся. Дело в том, что Бин очень любит четные числа, но при этом ненавидит нечетные. Поэтому он очень обрадуется, если четных чисел на двери написано больше чем нечетных. Иначе Мистер Бин расстроится.

Ваша задача определить настроение Мистера Бина, если вам известно какие числа напсаны на его двери.

입력

В первой строке входного файла содержится одно целое число  () --- количество чисел на двери Мистера Бина. Во второй строке входного файла даны  чисел  () --- числа, написанные на двери.

출력

В единственной строке выходного файла выведите Happy, если Мистер Бин будет рад, и Sad в противном случае.


문제 번역

러시아어로 되어 있는데 번역하면 다음과 같습니다.

 

최근 미스터 빈은 2015년 빛의 해에 관한 컨퍼런스를 마치고 집으로 돌아오던 중, 불량배들이 그의 문에 여러 숫자를 적어놓은 것을 발견했습니다.

미스터 빈은 짝수를 매우 좋아하지만, 홀수는 싫어하기 때문입니다.

따라서 문에 적힌 숫자 중 짝수가 홀수보다 많다면 미스터 빈은 매우 기뻐할 것입니다. 그렇지 않다면, 미스터 빈은 슬퍼할 것입니다.

여러분은 미스터 빈의 문에 적힌 숫자들을 보고 미스터 빈의 기분을 출력하면 됩니다.

입력

첫 번째 줄에는 문에 적힌 숫자의 개수를 나타내는 하나의 정수  () 이 주어집니다.
두 번째 줄에는 $n$ 개의 숫자  () 가 주어집니다.

출력

출력 파일의 유일한 줄에 미스터 빈이 기뻐할 경우 "Happy"를, 그렇지 않으면 "Sad"를 출력하세요.

 


Python 코드

Python 코드는 다음과 같습니다.

# 변수 선언, 리스트로 받기
N = int(input())
L = [int(x) for x in input().split()]

# 홀수의 개수와 짝수의 개수 설정
oddCount = 0
evenCount = 0

# 각 리스트 원소에 대해 홀수 / 짝수 판별
for i in range (0, len(L)) :
    if L[i] % 2 == 1 :
        oddCount += 1
    if L[i] % 2 == 0 :
        evenCount += 1
# 홀수의 개수와 짝수의 개수를 비교하고, "Happy" 또는 "Sad" 판별
if oddCount < evenCount :
    print("Happy")
else :
    print("Sad")

코드 분석

1. 변수 선언

N = int(input())
L = [int(x) for x in input().split()]

하던대로 변수를 받습니다. 대신 리스트 형태로 받아서 뒤에서 계산을 용이하게 합니다.

 

2. 홀수의 개수와 짝수의 개수의 초깃값

oddCount = 0
evenCount = 0

 

초깃값을 0으로 맞춥니다! 뒤에서 홀/짝수가 나올 때마다 1씩 더해집니다.

 

3. 개수 세기

반복문의 범위를 리스트 범위에 맞게 0부터 len[List]을 하여 홀/짝수를 판별해 줍니다.

2로 나누어서 나머지가 1이면 홀수, 0이면 짝수 이렇게 생각합시다.

for i in range (0, len(L)) :
    if L[i] % 2 == 1 :
        oddCount += 1
    if L[i] % 2 == 0 :
        evenCount += 1

4. 결과를 분석

if oddCount < evenCount :
    print("Happy")
else :
    print("Sad")

 

결과를 분석해서 기분을 나타내면 끝입니다.


 

'코딩 > Baekjoon' 카테고리의 다른 글

[Baekjoon 백준 1111번] IQ Test Python(파이썬) 풀이  (0) 2024.08.23