JSITCLUB
파이썬 - 프로그래머스 - 짝수 와 홀수 본문
프로그래머스 - 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
풀이 및 코드 |
먼저 알고리즘 문제를 푸실 때는 개인마다, 상황마다 차이가 있지만, 저 같은 경우는 다음과 같은 순서를 지키려 합니다.
- 이해(간략화)
- 계획(큰 흐름을 계획)
- 작성(코딩)
- 수정(디버깅)
알고리즘 문제를 풀때는 당연한 이야기 같지만 먼저 문제를 꼼꼼히 읽고 이해해야 합니다. 제약사항이나 문제에서 조건들을 놓치면 계획을 잘못 세우게 되고, 그러면 열심히 코딩하다가 중간에 다시 해야 하는 경우가 생기기도 합니다. 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"
설명이 너무 길었죠. 처음이라 하고 싶은 이야기가 많아 졌네요. 다음부터는 최대한 줄여보겠습니다. 감사합니다.
'파이썬 > 문제풀이' 카테고리의 다른 글
파이썬 - 프로그래머스 - 가운데 글자 가져오기 (0) | 2020.01.03 |
---|---|
파이썬 - 프로그래머스 - 서울에서 김서방 찾기 (0) | 2020.01.02 |
파이썬 - 프로그래머스 - 수박수박수박수 (0) | 2019.12.30 |
파이썬 - 프로그래머스 - 문자열을 정수로 바꾸기 (0) | 2019.12.30 |
파이썬 - 프로그래머스 - 직사각형 별찍기 (0) | 2019.12.28 |