👉 사용 언어 : PYTHON3
행렬의 덧셈
✅ Solution
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
list = []
for j in range(len(arr1[i])):
list.append(arr1[i][j]+arr2[i][j])
answer.append(list)
return answer
👉 반복문과 리스트 변수 2개를 사용하여 풀이함.
✅ 다른 사람 풀이 참고
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a,b)] for a, b in zip(A,B)]
return answer
👉 list( ) : 리스트로 형변환
👉 zip( ) : 여러 개의 iterable 자료형이 개수가 동일할 때 사용한다.
( interable자료형은 리스트, 튜플 같이 반복 가능한 자료형을 의미한다. )
( 요소 개수가 같은 3개의 리스트가 있는 경우, 왼쪽부터 슬라이스 하듯 각 리스트에서 인덱스 위치 순서가 동일한 요소끼리 나눈 후 묶어주는 것 )
( zip 타입으로 출력되므로 리스트 / 딕셔너리 / - 의 자료형으로 형변환해주어야 한다. )
👉 unzip( ) : zip( )으로 묶어 놓았던 것을 다시 해제한다.
예산
✅ Solution
def solution(d, budget):
answer = 0
for i in sorted(d):
if budget-i >= 0:
budget = budget-i
answer = answer+1
return answer
👉 정렬함수 sorted( )와 for 반복문, if 조건문을 사용하여 풀이함.
👉 예산을 오름차순으로 정렬 후, 하나씩 뺴주다가 모자르면 멈추도록 해야 최대한 많은 부서에 지원금을 지급할 수 있다.
✅ 다른 사람 풀이 참고
def solution(d, budget):
d.sort()
while budget < sum(d):
d.pop()
return len(d)
👉 정렬하는 부분은 동일하나, while 반복문을 사용하여 if 조건문을 따로 빼지 않았다.
컨트롤 제트
✅ Solution
def solution(s):
answer = 0
list = s.split()
for i in range(len(list)):
if list[i] == 'Z':
answer = answer-(int(list[i-1]))
else:
answer = answer+int(list[i])
return answer
✅ 다른 사람 풀이 참고
def solution(s):
answer = 0
for i in range(len(s := s.split(" "))):
answer += int(s[i]) if s[i] != "Z" else -int(s[i-1])
return answer
✅ split( )
👉 문자열을 공백 또는 특정한 문자(열) 기준으로 나누어 리스트를 만들 때 사용한다.
( Cf. spilt( )과 정확히 반대의 기능을 수행하는 메서드는 join( ) 으로, 리스트의 원소들을 하나의 문자열로 합쳐 주는 메서드이다. )
1) 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나눠 리스트로 만들기
리스트명(문자열객체).split()
2) 특정한 문자(':' 등)를 기준으로 문자열을 분할하여 리스트로 만들기
리스트명(문자열객체).split('특정문자')
A로 B 만들기
✅ Solution
def solution(before, after):
return int(sorted(before)==sorted(after))
✅ sorted( )
👉 길이가 동일한 두 문자열을 비교하는 경우로, 순서 상관없이 동일한 문자가 들어있는지만 확인하는 것이기 때문에 복잡하게 생각하지 않고 두 문자열 모두 정렬한 다음 순서대로 비교하면 쉽게 문제를 해결할 수 있다.
'알고리즘풀이 > 프로그래머스' 카테고리의 다른 글
| [11/16] Lv1. (0) | 2023.11.10 |
|---|---|
| [11/8] Lv1. (0) | 2023.11.04 |
| [10/31] Lv1. (0) | 2023.11.01 |
| [10/22] Lv1. (0) | 2023.10.19 |
| [9/21] Lv1. (0) | 2023.09.15 |