Algorithm/프로그래머스

[프로그래머스 > Lv1] 카드뭉치

RIEN😚 2023. 2. 16. 20:05
728x90
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제

[입력]

- 문자열로 이루어진 배열 cards1, cards2

- 원하는 단어 배열 goal

 

[결과]

- cards1과 cards2에 적힌 단어들로 goal를 만들 수 있다면 "Yes", 만들 수 없다면 "No"를 return

 

2. 코드

kotlin
class Solution {
    fun solution(cards1: Array<String>, cards2: Array<String>, goal: Array<String>): String {
        var first = 0 // cards 1
        var second = 0 // cards 2
        val cards1Length = cards1.size
        val cards2Length = cards2.size
        val length = goal.size
        
        (0 until length).forEach {
            if (first < cards1Length && cards1[first] == goal[it])
            	first++
            else if (second < cards2Length && cards2[second] == goal[it])
            	second++
            else return "No"
        }
        
        return "Yes"
    }
}

 

Python
def solution(cards1, cards2, goal):
    first, second = 0, 0
    cards1_size, cards2_size = len(cards1), len(cards2)
    target = len(goal)
    
    for i in range(target):
        if first<cards1_size and cards1[first]==goal[i]:
            first+=1
        elif second<cards2_size and cards2[second]==goal[i]:
            second+=1
        else: return "No"
    return "Yes"
반응형