140. 공백으로 구분하기 2
class Solution {
public String[] solution(String my_string) {
String[] answer = my_string.trim().split("\\s+");
return answer;
}
}
<작성한 코드>
my_string에. trim()을 사용해서 문자열 양끝의 공백을 제거해 준다. split안에 "\\s+"를 사용했는데 이것은 정규식이다. 하나 이상의 공백이 있으면 그걸 기준으로 나누게 한다. 저장된 result를 반환해 준다.
141. 공백으로 구분하기 1
class Solution {
public String[] solution(String my_string) {
String[] answer = my_string.split(" ");
return answer;
}
}
<작성한 코드>
간단한 문제다. 공백을 기준으로 split() 해주고 반환하면 된다.
142. ad 제거하기
import java.util.*;
class Solution {
public String[] solution(String[] strArr) {
List<String> list = new ArrayList<>();
for(int i=0; i<strArr.length; i++){
if(!strArr[i].contains("ad")){
list.add(strArr[i]);
}
}
String[] answer = new String[list.size()];
for(int i=0; i<list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
<작성한 코드>
리스트 형태의 배열을 하나 선언해 준 뒤 strArr내부의 원소들의 값을 비교했다. ad를 포함하고 있지 않다면 list에 그 값을 추가해 준다. 추가가 되었다면 answer의 크기를 list길이만큼 선언해 준 뒤, for문을 사용해서 answer에 list의 값을 대입해 주고 반환하였다.
143. 문자열이 몇 번 등장하는지 세기
class Solution {
public int solution(String myString, String pat) {
int answer = 0;
for(int i=0; i<=myString.length()-pat.length(); i++){
String sub = myString.substring(i, i + pat.length());
if(sub.contains(pat)){
answer ++;
}
}
return answer;
}
}
<작성한 코드>
for문의 반복 횟수는 myString의 길이에서 pat의 길이를 뺀 만큼 반복해 줬다. 왜냐면 myString의 길이만큼 돌리게 되면 myString의 길이 이상까지 조회하게 될 것이기 때문에 이렇게 설정해 줬다. 그 뒤 substring을 이용하여 문자열을 잘라서 비교했다. i부터 i+pat의 길이까지 더해서 비교해주고 sub안에 pat이 포함된다면 answer을 더해줬다. i+pat.length()을 해준이유는 banana와 ana처럼 주어졌을때 문자열 끝까지 비교를 하게된다면 중복되는 횟수가 생기기 때문에 i+pat.length()로 설정해줬다.
144. 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기
class Solution {
public String solution(String myString, String pat) {
String answer = "";
int idx = myString.lastIndexOf(pat);
answer = myString.substring(0, idx) + pat;
return answer;
}
}
<작성한 코드>
int형 정수 idx를 선언하고 myString.lastIndexOf(pat)을 사용하여 값을 대입해 줬다.. lastIndex()는 문자열에서 마지막으로 등장하는 ( ) 안의 값의 인덱스를 반환해 주는 함수이다. answer에는 myString을 0번부터 idx번까지 가져오고 pat을 마지막으로 더해주면 가장 긴 부분문자열이 된다.
145. 특정한 문자를 대문자로 바꾸기
class Solution {
public String solution(String my_string, String alp) {
String answer = "";
for(int i=0; i<my_string.length(); i++){
char ch = my_string.charAt(i);
if(ch == alp.charAt(0)){
ch = Character.toUpperCase(ch);
answer += ch;
} else{
answer += ch;
}
}
return answer;
}
}
<작성한 코드>
my_string의 길이만큼 반복문을 돌려줬다. 그 뒤 ch에는 원소 하나하나 값을 넣어줬고 만약 이 값이 alp의 값과 일치하면 ch를 Character.toUpperCase()를 사용해서 대문자로 변환해 줬다. 변환해 준 값을 answer에 넣어준다. 만약 일치하지 않는다면 그대로 answer에 넣어줬다. answer을 반환해 주고 종료했다.
146. A 강조하기
class Solution {
public String solution(String myString) {
String answer = myString.toLowerCase();
answer = answer.replace('a', 'A');
return answer;
}
}
<작성한 코드>
A가 아니라면 전부 소문자로 출력하면 된다. 따라서. toLowerCase()를 사용해서 문자열을 모두 소문자로 변경시킨 뒤 replace('a', 'A')를 사용해서 소문자 a들만 A로 변경시켜 주고 반환하였다.
147. 배열에서 문자열 대소문자 변환하기
class Solution {
public String[] solution(String[] strArr) {
String[] answer = new String[strArr.length];
for(int i=0; i<strArr.length; i++){
if(i%2 == 1){
answer[i] = strArr[i].toUpperCase();
} else{
answer[i] = strArr[i].toLowerCase();
}
}
return answer;
}
}
<작성한 코드>
간단한 문제다. strArr의 길이만큼 배열을 선언해 주고 반복문으로 돌렸다. 홀수일 때는 toUpperCase()를 사용해서 전부 대문자로 넣어줬고, 짝수일 때는 toLowerCase()를 사용해서 전부 소문자로 넣어줬다.
148. 소문자로 바꾸기
class Solution {
public String solution(String myString) {
String answer = myString.toLowerCase();
return answer;
}
}
<작성한 코드>
toLowerCase()를 사용해서 소문자로 바꿔주면 끝난다.
149. 대문자로 바꾸기
class Solution {
public String solution(String myString) {
String answer = myString.toUpperCase();
return answer;
}
}
<작성한 코드>
이것도 간단한 문제다.. toUpperCase()를 사용해서 전부 대문자로 바꿔주면 된다.
'프로그래머스 문제풀이 > 알고리즘 (JAVA)' 카테고리의 다른 글
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (162~169번 문제풀이) (0) | 2023.10.18 |
---|---|
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (150~161번 문제풀이) (1) | 2023.10.17 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (134~139번 문제풀이) (1) | 2023.10.16 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (127~133번 문제풀이) (0) | 2023.10.12 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (123~126번 문제풀이) (0) | 2023.10.10 |
남건욱's 공부기록