WorkHard/코딩테스트

[코딩테스트] JAVA 프로그래머스 연습문제 - 카드 뭉치

코딩공대 2023. 3. 10. 17:36
728x90

문제 : 프로그래머스 LV.1 카드 뭉치

 - 풀이

문자열로 이루어진 배열 cards1, cards2와 원하는 단어 배열 goal이 매개변수로 주어질 때, card1과 card2에 적힌 단어들로 goal을 만들 수 있다면 "Yes"를, 만들 수 없다면"No"를 return하는 solution함수를 완성하는 문제.
  • cards1 배열과 cards2 배열에 대해 0으로 초기화한 변수 cardIdx1, cardIdx2를 선언하여 cardIdx1, cardIdx2에 + 1하여, 다음 goal 단어 검색 시 사용한 단어 다음 단어를 검색하게 한다.
    1. 0으로 초기화한 cardIdx1, cardIdx2 변수 선언한다.

    2. while문을 통해 goal 배열 단어를 검색한다.

    3. cardIdx1이 cards1의 크기보다 작으면서 검색할 단어(goal)가 cards1[cardIdx1]과 같으면 cardIdx1++

    4. cardIdx2가 cards2의 크기보다 작으면서 검색할 단어(goal)가 cards2[cardIdx2]와 같으면 cardIdx2++

    5. 검색할 단어(goal) 같은 단어가 없거나 사용할 차례가 아니라면 원하는 단어 배열을 만들 수 없으므로 answer에 No를 저장하고 while문을 끝난다.

    6. while문을 도중에 끝내지 않았다면 i++하여 다음 goal단어를 검색한다.

    7. while문을 다 돌고 나서 Yes로 초기화했으면 answer을 return한다.

 - 코드


확실히 알고리즘 문제가 어렵다....ㅜ

많이 풀어보면 늘 거라고 생각하고 하루 한 문제라도 꾸준히 풀어보자!