728x90
문제
아래 네 개의 단어를 한 번씩만 사용해 만들 수 있는 단어를 솎아내는 문제
"aya", "ye", "woo", "ma"
입력 예시) babbling = {"ayaye", "uuuma", "ye", "yemawoo", "ayaa"}
확인 예시) ayaye = aya + ye, ye = ye, yemawoo = ye + ma + woo 이므로 3개 가능
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120956
원리
- 단순 반복으로 검사
- String의 replace메소드를 사용하면 손쉽게 해결이 가능
풀이방법
주의할 점 1.
replace한 단어를 할당해주어야 정상 동작한다.
주의할 점 2.
replace할 때, ""를 이용해 빈 문자로 바꿔버리면, 앞뒤에 있는 문자가 붙어서 replace가 가능한 문자열이 되는 경우
잘못된 예시) babbling이 wyeoo인 경우 주어진 문자열을 ""로 바꾸면,
-> ye가 ""로 바뀌면서 -> w + oo 가 붙어서 -> woo가 되고 -> woo를 또 ""로 변경할 수 있게되버림
나의 코드
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] arr = {"aya", "ye", "woo", "ma"};
for(int j =0;j<babbling.length ; j++) {
String temp = babbling[j];
for (int i = 0; i < 4; i++) if (temp.contains(arr[i])) temp = temp.replace(arr[i], "#");
String compare = "";
for (int i = 0; i < temp.length(); i++) compare += "#";
if(temp.equals(compare)) answer++;
}
return answer;
}
}728x90
'알고리즘 저장소 (일반방식과 나만의 풀이) > JAVA' 카테고리의 다른 글
| [Softeer] 장애물 인식 프로그램 (0) | 2023.03.02 |
|---|---|
| [프로그래머스] Lv0. 연속된 수의 합 (0) | 2023.03.02 |
| [백준] no2606: 바이러스 ☆백준 골드 달성☆ (0) | 2023.02.26 |
| [백준] no1074: Z (0) | 2023.02.25 |
| [백준] no2630: 색종이 만들기 (0) | 2023.02.24 |