일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 백준 1197번 최소 스패닝 트리 - java
- 프로그래머스
- HashMap
- Java
- Stack
- 백준 1647번 도시 분할 계획 - java
- ac 5430번
- 18111번 마인크래프트 - java 구현
- 백준 1806번 부분합 java
- 최소 힙 1927
- dp
- 백준 2467번 용액 자바 - 이분탐색
- 백준 1541
- 프로그래머스 java
- 백준 3190번
- StringTokenizer
- 프로그래머스 자바
- append
- mysql hy000 에러
- HashSet
- toUpperCase
- 백준 14938번 서강그라운드
- 코틀린기초
- 백준 1043번 거짓말 - java 분리 집합
- 백준 2473번 세 용액 - java
- StringBuilder
- kotlin
- map
- hash
- replace()
- Today
- Total
말하는 컴공감자의 텃밭
프로그래머스 옹알이 <13점> - 자바 (java) replace, replaceAll 본문
자바 응애 응애..
머쓱이가 얼마나 잘 옹알이하는지 알아봅시다.
프로그래머스 옹알이
먼저 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.
오켕~ "ayaye" 같은것도 aya + ye 라서 가능하군요. 하나하나 지워줘야 겠네요. replace()를 사용합니다.
replace() 메서드는
String str = "Hello World!";
str = str.replace("Hello", "Hi");
System.out.println(str; // Output: "Hi World!"
예시처럼 바꿀 "Hello" 를 넣으면 "Hi"로 바뀌는 메서드에요
그럼 replace를 사용해서 발음할 수 있는 문자가 나오면 치환하고, 나중에 치환한 문자를 또 없애준 후 ++하면 되겠네요.
예를 들어 치환할때 "가능" 으로 바꾼다면, "ayaye" 의 경우 "aya" -> 가능 "가능ye", -> "가능가능" 이 되겠네요.
마지막에 "가능"을 ""로 바꾸고 비교해서 ""라면 answer ++
가봅시다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class Solution { public int solution(String[] babbling) { int answer = 0; for(int i = 0; i<babbling.length; i++){ babbling[i] = babbling[i].replace("aya", "가능"); babbling[i] = babbling[i].replace("ye", "가능"); babbling[i] = babbling[i].replace("woo", "가능"); babbling[i] = babbling[i].replace("ma", "가능"); babbling[i] = babbling[i].replace("가능", ""); if(babbling[i] == ""){ answer++; } } return answer; } } | cs |
따란.
프로그래머스 옹알이
비슷한 문제입니다. 다만 연속 발음을 못하네요.
이번에는 replaceAll()을 사용해보려합니다. replaceAll()은 replace()와 다르게 정규식이 가능합니다.
String str = "The cat in the hat";
String replaced = str.replaceAll("at", "og");
System.out.println(replaced);
>>The cog in the hog
at가 들어가는 하위 문자열이 모두 바뀐 모습.
>>HelloWorldThisisatest
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Solution { public int solution(String[] babbling) { int answer = 0; for (int i = 0; i < babbling.length; i++) { babbling[i] = babbling[i].replaceAll("ayaaya|yeye|woowoo|mama", " "); babbling[i] = babbling[i].replaceAll("aya|ye|woo|ma", ""); if (babbling[i].equals("")) { answer++; } } return answer; } } | cs |
class Solution {
public int solution(String[] babbling) {
int answer = 0;
for (int i = 0; i < babbling.length; i++) {
babbling[i] = babbling[i].replaceAll("ayaaya|yeye|woowoo|mama", " "); // 두번 반복하는 경우를 제외시키기 위해
// 띄어쓰기로 구분해 주어야 합니다.
babbling[i] = babbling[i].replaceAll("aya|ye|woo|ma", ""); // 가능한 발음 처리
if (babbling[i].equals("")) {
answer++;
}
}
return answer;
}
}
정리
- replace() -> 문자열을 바꿀 때 사용.
- ex) String str = "banana is good "
- str.replace("banana", "apple") -> "apple is good"
- replaceAll() -> 문자열을 바꿀 때 사용. 정규식, 패턴 가능
- str.replaceAll("a+n", "pp") -> "bppa is good"
프로그래머스 옹알이
'알고리즘 > Programmers - Java' 카테고리의 다른 글
백준 10102번 개표 - 파이썬(python3) count (0) | 2023.05.11 |
---|---|
프로그래머스 부분 문자열인지 확인하기 - 자바 (java) contains (0) | 2023.05.04 |
프로그래머스 가장 가까운 글자 - 자바 (java) HashMap (0) | 2023.04.29 |
프로그래머스 마지막 두 원소 - 자바 (java) Arrays.copyOf (0) | 2023.04.29 |
프로그래머스 - 폰켓몬 자바(java) Hash (0) | 2023.04.26 |