JSITCLUB

파이썬 - 프로그래머스 - 짝수 와 홀수 본문

파이썬/문제풀이

파이썬 - 프로그래머스 - 짝수 와 홀수

jsitclub 2019. 12. 28. 21:30

프로그래머스 - level 1

문제 설명

정수 num이 짝수일 경우 Even을 반환하고 홀수인 경우 Odd를 반환하는 함수, solution을 완성해주세요.

제한 조건

  • num은 int 범위의 정수입니다.

  • 0은 짝수입니다.

입출력 예

num

return

3

"Odd"

4

"Even"

 

 

코딩테스트 연습 - 짝수와 홀수

정수 num이 짝수일 경우 Even을 반환하고 홀수인 경우 Odd를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 Odd 4 Even

programmers.co.kr

풀이 및 코드

먼저 알고리즘 문제를 푸실 때는 개인마다, 상황마다 차이가 있지만, 저 같은 경우는 다음과 같은 순서를 지키려 합니다.

  1. 이해(간략화)
  2. 계획(큰 흐름을 계획)
  3. 작성(코딩)
  4. 수정(디버깅)

알고리즘 문제를 풀때는 당연한 이야기 같지만 먼저 문제를 꼼꼼히 읽고 이해해야 합니다. 제약사항이나 문제에서 조건들을 놓치면 계획을 잘못 세우게 되고, 그러면 열심히 코딩하다가 중간에 다시 해야 하는 경우가 생기기도 합니다. 2~3분 시간을 더 들여 꼼꼼히 문제를 읽고 이해하는 것이 나중에 30분. 아니 그보다 더 긴 시간을 절약할 수 있습니다. 또한 이해가 되어야 긴 시간 코딩을 하더라도 목표를 놓치지 않을 수 있습니다.

 

문제요약 

먼저 위 문제는 num이 짝수면 "Even" 홀수면"Odd"를 리턴하는 문제입니다.

 

문제해설

문제에서 "~면", "~라면"이 나오면 조건에 따라 결과나 진행이 바뀐다는 이야기고, 그건 조건문을 사용해야 한다는것을 감지하셔야 합니다.

그러면 짝수와 홀수는 어떻게 구분을 할까요? 먼저 짝수 또는 홀수를 코딩으로 표현할 수 있어야 하는데, 대부분 이럴 때는 초, 중등 수학 정도의 정의 또는 개념이면 해결이 됩니다.

짝수 : 2로 나누어 떨어지는 수

아직도 프로그램언어 로는 "나누어 떨어진다"를 표현하기 어렵습니다. 우리가 배운 문법으로 표현할 수 있는 방법은 없을 까요? 우리는 연산자를 다룰 때 나머지를 배웠을 것입니다. 그러므로 짝수의 정의는 다음과 같이 바꿀 수 있을 것입니다.

2로 나누어 나머지가 0인 수 

%2==0  : 값이 짝수

늘 이렇게 단계적으로 생각하는 것은 아니지만 이런식으로 찾아가고, 나중에는 그냥 떠오르게 되는 겁니다.

짝수가 해결되면 홀수(값%2==1)도 자연스럽게 해결 되죠. 하지만 여기서는 짝수와 홀수 두 가지 경우이므로 홀수는 조건에 쓰지 않고 "짝수일 때 와 아닐 때"로 구분할 겁니다.

이와 같이 내용을 정리하는 과정이 가장 중요한 공부 입니다. 이 과정은 언어와 크게 상관없이 대부분 공통적인 부분이므로 그후에 C 문법을 적용 하든, 자바 문법을 적용하든, 아니면 스크래치 같은 블록형을 적용하든 그것은 각자 알고 있는 내용으로 표현하면 됩니다. 여기서는 파이썬을 사용하겠습니다.

 

결과코드

def solution(num):
    if num%2==0:
        return "Even"
    else:
        return "Odd"

 

설명이 너무 길었죠. 처음이라 하고 싶은 이야기가 많아 졌네요. 다음부터는 최대한 줄여보겠습니다. 감사합니다.

Comments