[프로그래머스] 코테연습1

0

알고리즘

목록 보기
2/9

1. n의 배수 고르기

def solution(n, numlist):
	# numlist에 있는 숫자들을 차례로 돌며
    # n의 배수인 수들만 answer list
    answer = [i for i in numlist if i%n == 0] 
    return answer

2. 자릿수 더하기

def solution(n):
     answer = sum([int(i) for i in str(n)])
     return answer

3. 로그인 성공?

  • 머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
    아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
    로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.
def solution(id_pw, db):
    for i in db:
        if id_pw[0] in i: #id가 있는 경우
            if id_pw[1] == i[1]: #비밀번호도 일치한 경우
                return "login"
            else: #비밀번호는 일치하지 않는 경우
                return "wrong pw"
        
    return "fail" #id가 없는 경우

좋아요가 가장 많았던 풀이

def solution(id_pw, db):
    if db_pw := dict(db).get(id_pw[0]):
        return "login" if db_pw == id_pw[1] else "wrong pw"
    return "fail"

✅ 짚고 넘어가기 : :=이란?

python 3.8부터 새로 추가된 문법

  • 변수 := 표현식
  • 표현식의 결과를 변수에 할당함과 동시에 반환함

예시)

a = 'hello world'
result = 'hello' in a
if result:
	print(a)
    print(result)

위의 코드를 간결하게 표현 가능

if result := 'hello' in (a := 'hello world'):
	print(a)
    print(result)

4. 가위바위보

  • 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.
def solution(rsp):
    answer = ''
    for i in rsp:
        if i == '2':
            answer +='0'
        elif i == '0':
            answer += '5'
        else:
            answer += '2'
    return answer

5. 제곱근 판별

  • 문제 설명
    임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
    n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

  • 제한 사항
    n은 1이상, 50000000000000 이하인 양의 정수입니다.

import math

def solution(n):
    if math.sqrt(n) == int(n**0.5):
        return (math.sqrt(n) + 1) ** 2
    else:
        return -1

6. 약수의 합

  • 문제 설명
    정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

  • 제한 사항
    n은 0 이상 3000이하인 정수입니다.

def solution(n):
    answer = 0
    for i in range(1, n+1):
        if n % i == 0 :
            answer += i
    return answer

7. 숫자 비교하기

  • 문제 설명
    정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
def solution(num1, num2):
    if num1 == num2:
        return 1
    else:
        return -1
profile
git commit -m "개발기록"

0개의 댓글