관리 메뉴

솜씨좋은장씨

[Programmers] OX퀴즈 (Python) 본문

Programming/코딩 1일 1문제

[Programmers] OX퀴즈 (Python)

솜씨좋은장씨 2023. 2. 16. 23:55
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 OX퀴즈 입니다.

 

프로그래머스

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

programmers.co.kr

👨🏻‍💻 문제 풀이

1.  X, Y 를 더하는 함수 (plus) 빼는 함수 (minus) 작성

def plus(X, Y):
    return int(X) + int(Y)


def minus(X, Y):
    return int(X) - int(Y)

2. X, Y 와 연산자를 입력 받으면 각 연산자에 해당하는 함수로 계산한 결과를 return 하는 함수 작성

def calculator(X, Y, operator):
    calc_dict = {
        "+": plus, "-": minus
    }
    
    return calc_dict[operator](X, Y)

calc_dict 이라는 dictionary 에 연산자를 넣으면

넣은 연산자에 해당하는 함수가 calc_dict 에서 return 되도록 한 뒤

해당 함수를 활용하여 계산한 결과가 나오도록 했습니다.

 

만약 operator 가 "+" 이면 1에서 만든 plus 함수가 calc_dict 에서 return 되고 

해당 함수를 활용하여 X와 Y를 더한 값을 return 합니다.

 

3. 2에서 만든 함수를 활용하여 입력 받은 값 

def solution(quiz_list):
    answer = []
    
    for quiz in quiz_list:
        X, operator, Y, equal, Z = quiz.split()
        
        if calculator(X=X, Y=Y, operator=operator) == int(Z):
            answer.append("O")
        else:
            answer.append("X")
        
    return answer

자 이제 위에서 만든 함수를 활용하는 일만 남았습니다.

quiz 목록에서 quiz 를 하나씩 꺼내온 후 이를 공백 기준으로 split 합니다.

quiz를 공백 기준으로 split 하면 

X, operator ( 연산자 ) , Y, equal ( = ), Z 이렇게 4개로 나뉘어집니다.

"19 - 6 = 13" -> ["19", "-", "6", "=", "13"]

X operator (연산자) Y equal (=) Z
"19" "-" "6" "=" "13"

이렇게 구한 값들에서 X, Y 그리고 opeator(연산자) 를 calculator 함수에 넣어 나온 값과 Z 의 값이

같으면

answer 리스트에 "O" 를 

그렇지 않으면 

answer 리스트에 "X" 를 

append 시켜줍니다.

 

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

def plus(X, Y):
    return int(X) + int(Y)


def minus(X, Y):
    return int(X) - int(Y)


def calculator(X, Y, operator):
    calc_dict = {
        "+": plus, "-": minus
    }
    
    return calc_dict[operator](X, Y)
    

def solution(quiz_list):
    answer = []
    
    for quiz in quiz_list:
        X, operator, Y, equal, Z = quiz.split()
        
        if calculator(X=X, Y=Y, operator=operator) == int(Z):
            answer.append("O")
        else:
            answer.append("X")
        
    return answer
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments