문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/159994
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코딩테스트를 준비하면서 추가 라이브러리를 사용하지 않아야겠다는 생각이 있었지만, 최근에는 기초 실력이 늘어나게 되면서 여러 기본적인 라이브러리를 사용하는 것으로 생각이 바뀌었다.
그 중에서 이번 문제를 풀게되면서 사용하게 된 deque도 그러하다.
앞으로 많이 사용할 거 같으니 라이브러리 사용방법에 대해 다른 글을 통해 정리를 해보려고한다.
처음 작성한 코드
- List를 deque로 변환
- 비교하기전에 deque에서 popleft()를 통해 변수를 가져오기
- Deque가 빈 것을 if문으로 확인해주어 empty deque에서 값을 가져오지 않기
from collections import deque
def solution(cards1, cards2, goal):
cards1 = deque(cards1)
cards2 = deque(cards2)
c1, c2 = cards1.popleft(), cards2.popleft()
for i in goal:
if i == c1:
if cards1:
c1 = cards1.popleft()
elif i == c2:
if cards2:
c2 = cards2.popleft()
else:
return "No"
return "Yes"
# 입출력 예시
print(solution(["i", "drink", "water"], ["want", "to"], ["i", "want", "to", "drink", "water"]))
print(solution(["i", "water", "drink"], ["want", "to"], ["i", "want", "to", "drink", "water"]))
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Programmers][Python] 잘라서 배열로 저장하기 (0) | 2023.02.25 |
---|---|
[Programmers][Python] 진료순서 정하기 (0) | 2023.02.23 |
[Programmers][Python] K의 개수 (0) | 2023.02.22 |
[Programmers][Python] 가까운 수 (0) | 2023.02.21 |
[Programmers][Python] 중복된 문자 제거 (0) | 2023.02.21 |