처음으로 프로그래머스에서 풀어본 문제!
자동완성이 없어서 아주 기본적인 것도 해맸다.
이제 익숙해져야지!
문제
https://school.programmers.co.kr/learn/courses/30/lessons/159994
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
설계
알고리즘 설계[접근 방법] : 반복문과 조건문
딱히 어려운 문제는 아니었다.
그런데 웹페이지 자체가 익숙하지 않아서 그런지 해맸고, 출력을 해보지 않아서 시간이 조금 오래 걸렸다.
전체적으로 큰 반복문을 돌면서, cards1의 배열과 cards2의 배열의 현재 문자와 goal배열의 문자를 비교한다.
서로의 문자가 같다면 계속 반복문을 진행하고, 아니라면 반복문을 멈춘다.
반복문이 멈췄을 때, goal배열의 인덱스가 문자열 길이와 같다면 YES를, 아니라면 NO를 출력한다.
코드
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
//goal배열의 인덱스
int idx=0;
//cards1과 cards2의 인덱스
int i=0; int j=0;
//문자가 같은지 비교하는 변수
boolean flag1 = false;
boolean flag2 = false;
do{
flag1=false; flag2=false;
//cards1의 인덱스의 문자와 goal의 인덱스의 문자를 비교한다.
if(i<cards1.length && cards1[i].equals(goal[idx])) {
i++; idx++; flag1=true;
}
//cards2의 인덱스의 문자와 goal의 인덱스의 문자를 비교한다.
if(j<cards2.length && cards2[j].equals(goal[idx])) {
j++; idx++; flag2=true;
}
} while((flag1 || flag2) && (idx<goal.length));
String answer = "";
if(idx==goal.length) answer = "Yes";
else answer = "No";
return answer;
}
}
(❁´◡`❁)
끝!
'[자료구조] 알고리즘' 카테고리의 다른 글
[프로그래머스] 카펫(약수구하기_JAVA) (0) | 2023.07.12 |
---|---|
[프로그래머스] k번째 수 (JAVA) (0) | 2023.07.07 |
[백준] 14719번 빗물(구현_JAVA) (0) | 2023.07.03 |
[백준] 21610번_마법사 상어와 비바라기 (구현_JAVA) (0) | 2023.06.29 |
[백준] 1343번_폴리오미노 (그리디 알고리즘_JAVA) (0) | 2023.06.27 |