본문 바로가기
Algorithm

[프로그래머스] 알고리즘 기초 10문제 (Python)

by Baest 2022. 2. 11.

 

 

1) 직사각형 별찍기

 

https://programmers.co.kr/learn/courses/30/lessons/12969

 

코딩테스트 연습 - 직사각형 별찍기

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수

programmers.co.kr

 

a, b = map(int, input().strip().split(' '));
for i in range(b):
    for j in range(a):
        print("*", end="")
    print()

 

 

2) 짝수와 홀수

 

https://programmers.co.kr/learn/courses/30/lessons/12937

 

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

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

programmers.co.kr

 

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

 

 

3) 가운데 글자 가져오기

 

https://programmers.co.kr/learn/courses/30/lessons/12903

 

코딩테스트 연습 - 가운데 글자 가져오기

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret

programmers.co.kr

 

import math;

def solution(s):
    answer = ""
    length = len(s)                # s의 길이
    idx = math.floor(length/2)     # length를 2로 나눈 몫
    if(length % 2 != 0):
        for i in range(length):
            answer = s[idx]
    else:
        for i in range(length):
            answer = s[idx-1] + s[idx]
    return answer

 

 

4) 두 정수 사이의 합

 

https://programmers.co.kr/learn/courses/30/lessons/12912

 

코딩테스트 연습 - 두 정수 사이의 합

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우

programmers.co.kr

 

def solution(a, b):
    answer = 0
    if( a < b):
        for i in range(a, b+1):
            answer += i
    else:
        for i in range(b, a+1):
            answer += i
    return answer

 

 

5) 문자열을 정수로 바꾸기

 

https://programmers.co.kr/learn/courses/30/lessons/12925? 

 

코딩테스트 연습 - 문자열을 정수로 바꾸기

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니

programmers.co.kr

 

def solution(s):
    answer = int(s)
    return answer

 

 

6) 없는 숫자 더하기

 

https://programmers.co.kr/learn/courses/30/lessons/86051

 

코딩테스트 연습 - 없는 숫자 더하기

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

programmers.co.kr

 

def solution(numbers):
    answer = 0; sum = 0;
    for i in range(10):
        sum += i
    for i in numbers:
        answer += i
    answer = sum - answer
    return answer

 

 

7) 음양 더하기

 

https://programmers.co.kr/learn/courses/30/lessons/76501

 

코딩테스트 연습 - 음양 더하기

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re

programmers.co.kr

 

def solution(absolutes, signs):
    answer = 0
    for i in range(len(absolutes)):
        if(signs[i] == True):
            answer += absolutes[i]
        else:
            answer -= absolutes[i]            
    return answer

 

 

8) 평균 구하기

 

https://programmers.co.kr/learn/courses/30/lessons/12944

 

코딩테스트 연습 - 평균 구하기

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr

programmers.co.kr

 

def solution(arr):
    answer = 0
    for i in arr:
        answer += i
    return answer/len(arr)

 

 

9) 핸드폰 번호 가리기 

 

https://programmers.co.kr/learn/courses/30/lessons/12948

 

코딩테스트 연습 - 핸드폰 번호 가리기

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자

programmers.co.kr

 

def solution(phone_number):
    answer = ""
    length = len(phone_number) - 4
    list = phone_number[length:] # phone_number의 뒤에 4자리
    for i in range(0,length):
        answer += "*"
    answer += list
    return answer

 

 

10) 행렬의 덧셈

 

https://programmers.co.kr/learn/courses/30/lessons/12950

 

코딩테스트 연습 - 행렬의 덧셈

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요

programmers.co.kr

 

def solution(arr1, arr2):
    answer = []
    for i in range(len(arr1)):
        sumArr = []
        for j in range(len(arr1[i])):
            sumArr.append(arr1[i][j] + arr2[i][j])
        answer.append(sumArr)
    return answer