본문 바로가기
프로그래머스 Algorithm

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

by Echung 2024. 1. 2.

thumbnail

안녕하세요. 이번에는 프로그래머스 카드 뭉치 문제를 풀어보려고 합니다. 

Problem


https://school.programmers.co.kr/learn/courses/30/lessons/159994

 

프로그래머스

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

programmers.co.kr

Solution


class Solution {
    fun solution(cards1: Array<String>, cards2: Array<String>, goal: Array<String>): String {
        var cards1Index = 0
        var cards2Index = 0
        
        goal.forEach {
            if(cards1.size > cards1Index && cards1[cards1Index] == it) {
                cards1Index++
            } else if(cards2.size > cards2Index && cards2[cards2Index] == it) {
                cards2Index++
            } else {
                return "No"
            }
        }
        
        return "Yes"
    }
}

 이번 문제는 forEach 문을 통해서 쉽게 문제를 풀 수 있었습니다. goal의 자리에 맞는 값들을 card1와 card2에 index자리에 있는지 파악한 후 만약 없으면 return을 시키고 있으면 index값을 증가시키면서 goal을 전체 순환 했을 때 Yes를 출력하도록 코드를 작성해 보았습니다. 대부분의 사람들이 비슷한 방법으로 문제를 접근하였습니다. 새로운 풀이법이 있으면 언제든지 댓글로 남겨주시면 감사하겠습니다. 


Performance

1. 내가 작성한 코드
반응형