https://school.programmers.co.kr/learn/courses/30/lessons/159994
내가 한 풀이는 단순히 맨 앞에 있는 원소가 해당되는지 확인하고 pop시켜서 for문을 돌린것이다. 물론 정답은 맞았지만 다른 풀이들도 한번 살펴보자! (더 직관적으로 코드 짜기)
#내가 짠 코드
def solution(cards1, cards2, goal):
#순서가 중요
answer = ''
flag=True
for i in range(len(goal)-1):
#print(cards1,cards2)
if len(cards1)!=0 and goal[i] == cards1[0]:
print(cards1[0])
cards1.pop(0)
elif len(cards2)!=0 and goal[i] ==cards2[0]:
print(cards2[0])
cards2.pop(0)
else:
flag=False
break
if flag==True:
return "Yes"
else:
return "No"
코드 1
def solution(cards1, cards2, goal):
answer = []
n = len(cards1)
m = len(cards2)
i = j = 0
for word in goal:
if i < n and word == cards1[i]:
answer.append(cards1[i])
i += 1
if j < m and word == cards2[j]:
answer.append(cards2[j])
j += 1
return 'Yes' if answer == goal else 'No'
코드 2
from collections import deque
def solution(cards1, cards2, goal):
cards1 = deque(cards1)
cards2 = deque(cards2)
for word in goal:
if len(cards1)!=0 and word == cards1[0]: cards1.popleft()
elif len(cards2)!=0 and word == cards2[0]: cards2.popleft()
else: return 'No'
return 'Yes'
'코테 준비 > 프로그래머스' 카테고리의 다른 글
[level 1] 대충 만든 자판 (0) | 2023.05.10 |
---|---|
[level 1] 덧칠하기 (0) | 2023.05.10 |
[level 1] 둘만의 암호 (0) | 2023.05.09 |
[level 1] 개인정보 수집 유효기간 (0) | 2023.05.09 |
[level 1] 문자열 나누기 (0) | 2023.05.04 |