728x90
문제 : 프로그래머스 LV.1 카드 뭉치
- 풀이
문자열로 이루어진 배열 cards1, cards2와 원하는 단어 배열 goal이 매개변수로 주어질 때, card1과 card2에 적힌 단어들로 goal을 만들 수 있다면 "Yes"를, 만들 수 없다면"No"를 return하는 solution함수를 완성하는 문제.
- cards1 배열과 cards2 배열에 대해 0으로 초기화한 변수 cardIdx1, cardIdx2를 선언하여 cardIdx1, cardIdx2에 + 1하여, 다음 goal 단어 검색 시 사용한 단어 다음 단어를 검색하게 한다.
- 0으로 초기화한 cardIdx1, cardIdx2 변수 선언한다.
- while문을 통해 goal 배열 단어를 검색한다.
- cardIdx1이 cards1의 크기보다 작으면서 검색할 단어(goal)가 cards1[cardIdx1]과 같으면 cardIdx1++
- cardIdx2가 cards2의 크기보다 작으면서 검색할 단어(goal)가 cards2[cardIdx2]와 같으면 cardIdx2++
- 검색할 단어(goal) 같은 단어가 없거나 사용할 차례가 아니라면 원하는 단어 배열을 만들 수 없으므로 answer에 No를 저장하고 while문을 끝난다.
- while문을 도중에 끝내지 않았다면 i++하여 다음 goal단어를 검색한다.
- while문을 다 돌고 나서 Yes로 초기화했으면 answer을 return한다.
- 0으로 초기화한 cardIdx1, cardIdx2 변수 선언한다.
- 코드
확실히 알고리즘 문제가 어렵다....ㅜ
많이 풀어보면 늘 거라고 생각하고 하루 한 문제라도 꾸준히 풀어보자!
'WorkHard > 코딩테스트' 카테고리의 다른 글
[코딩테스트] JAVA 프로그래머스 연습문제 - 가장 가까운 같은 글자 (0) | 2023.03.12 |
---|---|
[코딩테스트] JAVA 프로그래머스 연습문제 - 크기가 작은 부분 문자열 (0) | 2023.03.11 |
[코딩테스트] countAllCharacters (0) | 2022.11.30 |
[코딩테스트] addOddValues (0) | 2022.11.30 |
[코딩테스트] isMember (0) | 2022.11.30 |