[Programmers] 행렬의 덧셈 / 핸드폰 번호 가리기 / x만큼 간격이 있는 n개의 숫자 / 직사각형 별찍기 (python)

yourmean·2021년 2월 11일
0

Algorithm - Programmers

목록 보기
10/13
post-thumbnail

🌴 행렬의 덧셈

문제 링크

해결 전략

arr1, arr2 : 행과 열의 크기가 같은 두 행렬

  1. numpy 행렬연산으로 solve

Source Code 1

import numpy as np

def solution(arr1, arr2):
    answer = np.array(arr1) + np.array(arr2)
    return answer.tolist()

모듈을 사용하고 싶지 않다면 2중 for문으로 해결해준다
-> arr1, arr2의 각 원소를 각각 더해서, 한 행이 완성될 때마다 answer에 append

Source Code 2

def solution(arr1, arr2):
    answer = []

    for i in range(len(arr1)):
        tmp = []
        for j in range(len(arr1[0])):
            tmp.append(arr1[i][j] + arr2[i][j])
        answer.append(tmp)

    return answer

🌴 핸드폰 번호 가리기

문제 링크

해결 전략

phone_number : 길이 4 이상 20이하인 문자열

  1. 문자열 길이-4 만큼 * 생성하고
  2. 여기에 phone_number의 마지막 4자리 join

Source Code

def solution(phone_number):
    x= '*'*(len(phone_number)-4)
    y= ''.join(list(phone_number)[-4:])
    return ''.join([x,y])

🌴 x만큼 간격이 있는 n개의 숫자

문제 링크

해결 전략

x : -10000000 이상, 10000000 이하인 정수
n : 1000 이하인 자연수

  1. while문을 돌면서 조건에 맞게 하나씩 append

Initial Source Code

def solution(x, n):
    answer = []
    cnt, tmp = 0, x

    while cnt < n:
        answer.append(tmp)
        cnt += 1
        tmp += x

    return answer

한 줄로도 처리 가능함ㅎ

Final Source Code

def solution(x, n):
    return [(i+1)*x for i in range(n)]


🌴 짝수와 홀수

문제 링크

해결 전략

n, m : 직사각형의 가로&세로 길이

  1. 공백 처리를 위해 for문 사용
  2. 세로 길이만큼 for문 돌면서 가로 길이만큼 * 찍어주기

Source Code

n,m= map(int, input().split(' '))

for _ in range(m):
    print('*'*n)
profile
𝐼 𝑒𝑖𝑡ℎ𝑒𝑟 𝑤𝑖𝑛 𝑜𝑟 𝑙𝑒𝑎𝑟𝑛 💪🏻

0개의 댓글