ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PCCE 모의고사 1] 2번 문제 해설
    알고리즘 이야기/프로그래머스 2022. 11. 2. 11:30

    https://school.programmers.co.kr/learn/courses/15006/lessons/121337

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

     

    -

     

    [PCCE 모의고사 1] 2번 문제

     

    문제 설명
    문제 설명
    정수가 담긴 변수 num이 주어졌을 때, num의 값이 양수인지, 0인지, 음수인지 판별하는 프로그램을 만들려고 합니다. 프로그램이 올바르게 작동하도록 빈칸을 채워주세요.
    • num이 양수인 경우 "양수입니다"가 출력됩니다.
    • num이 0인 경우 "0입니다"가 출력됩니다.
    • num이 음수인 경우 "음수입니다"가 출력됩니다.
    제한사항
    • -20,000 ≤ num ≤ 20,000
    입출력 예
    유의사항
    • elif와 else를 모두 사용해야 채점됩니다.

     

    -

     

    [PCCE 모의고사 1] 2번 문제 코드

     

    (위 코드 에디터의 '▶' 버튼을 눌러 코드를 실행해 보세요! 오른쪽 콘솔창을 통해 코드의 실행 결과를 볼 수 있습니다.)

     

    -

     

    [PCCE 모의고사 1] 2번 문제 해설

     

     2번 문제 부터는 본격적으로 제한사항, 입출력 예, 유의사항이 등장해요. 문제 설명 만큼이나 중요한 것들이니 꼭 잘 읽어봐야 돼요!

     

     문제 자체는 간단해요. num이 양수인지, 0인지, 음수인지 판별하라는 것이죠. 이를 위해서는 조건문(IF statement)조건(condition)관계 연산(relational operation) 혹은 비교 연산(comparison operation)으로 만들 수 있어야 돼요. (관계 연산을 비교 연산이라고도 해요)

     

     일단 조건문이 무엇인지 부터 살펴볼까요?

     

    -

     

     조건문이란 참(true)인지 거짓(false)인지, 조건을 만들어 판별하게 만드는 구문이에요. 예를 들어서 피카츄를 가르키면서 '피카츄는 노란색이야?'라고 물어본다면 '맞아!'라고 대답하겠죠?

     

    삐까삐까

     피카츄는 노란색이 맞으니까요. 여기서 '피카츄는 노란색이야?'가 조건문의 조건이에요. '맞아!'라고 대답했고, 실제로 피카츄는 노란색이니까 이 조건은 '참'이 돼요. 참 쉽죠?

     

     하지만 피카츄를 가리키면서 '피카츄는 파란색이야?'라고 물어본다면? '아니야..'라고 대답하겠죠. 피카츄는 노란색인데 파란색인지 물어봤으니 당연히 조건은 '거짓'이 돼요. 참 쉽죠?

     파란색이냐고 물어보지 않고, 초록색이나 빨간색이냐고 물어봐도 '아니야..'라고 대답하겠죠? 노란색이 아닌 그 외(else)에 다른 색이 나오면 조건은 '거짓'이 돼요.

     

     정리하면, 조건문의 조건(condition)이 참이면 참(true)이지만, 참이 아닌 것들은(else) 거짓(false)이 돼요. 참 쉽죠?

     

     아래의 코드를 실행해 볼까요?

     

     

     True가 출력된느 것을 볼 수 있어요. num이 3인데 2가 num보다 작냐고 물어봤기(조건) 때문이죠. 당연히 2는 3보다 작잖아요? 참이 맞죠. 그래서 True가 출력되었어요.

     

     만약 조건문의 조건에서 '2 < num'이 '4 < num'으로 바뀌면 어떨까요? 위의 코드는 여러분들이 직접 수정해서 실행해 볼 수 있으니까 2를 4로 바꿔서 실행해 보세요. 그러면,

     아무것도 출력되지 않을거에요. 왜? 조건이 거짓이기 때문이죠.

     그렇다면 조건이 거짓일 때에도 출력하고 싶다면 어떻게 할 수 있을까요?

     'else'를 사용하면 돼요!

     

     

     위의 코드를 실행해 보면 False가 출력되는 것을 볼 수 있어요. num이 3인데 4가 num보다 작냐고 물어봤기 때문이죠. 당연히 거짓이 되겠죠? 그럴땐 else가 돼요. 조건문의 조건이 참일 땐 조건문 바로 아래의 코드가 실행되지만, 조건문의 조건이 거짓이고, else가 있다면 이럴 땐 else가 실행돼요.

     

     만약 조건을 하나 더 추가하고 싶다면? 'elif'를 쓰면 돼요. elif는 else if를 줄인거에요. 아래의 코드를 볼까요?

     

     

     코드를 실행해 보면 '2는 num보다 작아!'가 출력되는 것을 볼 수 있어요. 첫 번째 조건인 '4 < num'이 거짓이기 때문에 다음 조건을 판별한 것이죠. elif와 else는 이전의 조건이 거짓인 경우에 검사하는 곳이에요. 만약 첫 번째 조건이 참이었다면 elif나 else까지 가지도 않겠죠?

     

    -

     

     자, 문제를 풀기 위한 조건문에 대해 배워봤어요. 그럼 이제 문제를 풀어.. 보기 전에!

     조건문의 조건을 만들기 위한 연산자에 대해 살펴볼거에요.

     

     위에서 숫자가 큰지 작은지 비교하기 위해서 부등호(<)를 사용했어요. 이 부등호가 바로 관계 연산을 위한 관계 연산자(relational operator)에요. 파이썬에사 사용되는 관계 연산자는 6개가 있어요. 대부분 여러분들이 나는 내용을 기호로 바꾼 것일 뿐이라 쉽게 이해할 수 있어요! 아래의 표를 볼까요?

     

    부호 예시 설명
    < 작다. (크다)
    미만 (초과)
    a < b a는 b보다 작다. (b는 a보다 크다.)
    a는 b 미만이다. (b는 a 초과이다.)
    > 크다. (작다.)
    초과 (미만)
    a > b a는 b보다 크다. (b는 a보다 작다.)
    a는 b 초과이다. (b는 a 미만이다.)
    <= 작거나 같다. (크거나 같다.)
    이하 (이상)
    a <= b a는 b보다 작거나 같다. (b는 a보다 크거나 같다.)
    a는 b 이하이다. (b는 a 이상이다.)
    >= 크거나 같다. (작거나 같다.)
    이상 (이하)
    a >= b a는 b보다 크거나 같다. (b는 a보다 작거나 같다.)
    a는 b 이상이다. (b는 a 이하이다.)
    == 같다. a == b a와 b가 같다.
    != 다르다. a != b a와 b가 다르다.

     

     '<'나 '>'와 같은 부등호는 우리가 이미 알고 있는 부호와 뜻이 같아요. 하지만 다른 것들은 조금 차이가 있죠? 특히 '같다.'라는 기호는 등호(=)를 하나만 쓰는 것이 아니라 꼭 두 개를 써야 한다는 것!! 기억하세요!! 기억하세요!!

     

    -

     

     이제 진짜 조건문과 관계 연산자에 대해 배웠으니 문제를 풀어볼까요?

     

     문제에서는 양수와 0 그리고 음수를 판별하라고 했어요. 대신 elif와 else를 모두 사용하라고 하죠. 조건문의 첫 번째 조건은 if로 시작하지만 두 번째 조건은 elif가 되겠죠? 그리고 첫 번째 조건과 두 번째 조건이 모두 거짓일 땐 마지막에 오는 else가 실행돼요. 이것만 기억하면 쉽게 풀 수 있는 문제에요.

     

     첫 번째로는 양수를 판별하는 조건을 만들어야 돼요. 양수는? 0보다 큰 숫자를 뜻하죠. 따라서

     0 < num 이나 혹은 num > 0 으로 표현할 수 있을거에요.

     

     두 번째 조건은 더 간단해요. 0인지만 판별하면 돼죠. 마찬가지로 0 == num 이나 혹은 num == 0 으로 표현할 수 있어요.

     

     마지막 조건은 생각할 필요도 없어요. 실수계에서는 양수나 0이 아니면 음수이기 때문에 첫 번째 조건과 두 번째 조건이 거짓이면 자동으로 num은 음수가 돼요.

     코드로 나타내볼까요?

     

     

     코드를 실행한 다음 오른쪽 콘솔창에서 숫자를 입력하고 엔터키를 누르면 출력되는 결과를 볼 수 있어요. 참 쉽죠?

Designed by Tistory.