👉 오늘 한 일
프로그래머스 문제풀이
1. 문자열 다루기 기본
- lv 1, 정답률 79%
str.isnumeric
은 문자열 형태로 된 숫자를 받아도 True를 반환함
def solution(s):
return True if (len(s) == 4 or len(s) == 6) and s.isnumeric() else False
- 다른 사람 풀이
isdigit
을 사용할 수도 있음. in
을 활용하면 or
을 쓰는 것보다 편리하게 조건을 찾을 수 있음
def alpha_string46(s):
return s.isdigit() and len(s) in [4,6]
2. 행렬의 덧셈 📌
- 프로그래머스 lv 1, 행렬의 덧셈
- lv 1, 정답률 78%, try 2
- 처음에 푼 풀이
- 같은 위치에 있는 요소끼리 더해서 하나의 리스트를 만든 후 리스트를 두 개로 나누었음
- 열의 길이를 생각하지 못하고 푼 풀이였음..! 이 풀이는 열의 길이가 2일 때만 작동함
def solution(arr1, arr2):
result = []
for a1, a2 in zip(arr1, arr2):
for i1, i2 in zip(a1, a2):
result.append(i1+i2)
return result[0:len(arr1[0])], result[-len(arr1[0]):]
- 다른 사람 풀이
- 이중 for문으로 각각의 요소들을 더해준뒤, 리스트에 append
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
arr_sum = []
for j in range(len(arr1[0])):
arr_sum.append(arr1[i][j] + arr2[i][j])
answer.append(arr_sum)
return answer
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a,b)] for a, b in zip(A,B)]
return answer
def sumMatrix(A,B):
return [list(map(sum, zip(*x))) for x in zip(A, B)]