Algorithms
[프로그래머스] java 언어기초 3일차
chillmyh
2023. 11. 25. 19:26
3-1
// 문자열 my_string이 매개변수로 주어집니다.
// my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
제출 답안
public class cote3_1 {
public String solution(String my_string) {
String answer = "";
for (int i=my_string.length()-1; i>=0; i--) {
answer += my_string.charAt(i);
}
return answer;
}
}
my_string의 문자열을 뒤에서부터 새로 값을 정하기 위해
for문을 사용하여 legth-1(마지막인덱스번호) 부터 1씩 index 0까지 줄여가면서 각 index에 해당하는 my_string의 문자열의 char 하나씩 answer에 더해줬다.
3-2
// 문자열 my_string과 문자 letter이 매개변수로 주어집니다.
// my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
1번째 제출 답안
반복문과 조건문을 이용한 풀이
public class cote3_2 {
public String solution(String my_string, String letter) {
// return my_string.replaceAll(letter, "");
String answer = "";
for (int i=0; i < my_string.length(); i++) {
if (my_string.charAt(i) != letter.charAt(0)) {
answer += my_string.charAt(i);
}
}
return answer;
}
}
입력 예시가 f, B와 같은 한글자씩들밖에 없었기 때문에 letter.charAt(0)을 적용할 수 있었다.
2번째 제출 답안
String answer = "";
answer = my_string.replaceAll(letter, "");
return answer;
-> 한줄로 바꿀 수 있다
return my_string.replaceAll(letter, "");
3-3
// 문자열 my_string과 정수 n이 매개변수로 주어질 때,
// my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
1번째 제출 답안
public class cote3_3 {
class Solution {
public String solution(String my_string, int n) {
String answer = "";
for (int i=0; i<my_string.length(); i++) {
for (int j = 0; j<n; j++) {
answer += my_string.charAt(i);
}
}
return answer;
}
}
}
2중 반복문으로 n값에 대한 index로 j를 추가로 설정해줘서
n번째가 되기전까지 i번째 my_string.charAt을 answer에 더해줬다.
3-4
// 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다.
// 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며,
// 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를
// return 하도록 solution 함수를 완성해주세요.
return message.length()*2;
3-5
// 영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다.
// 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
1번째 답안 제출
public class cote3_5 {
public String solution(String my_string) {
String answer = "";
for (int i=0; i<my_string.length(); i++) {
char checkChar = my_string.charAt(i);
if (checkChar != 'a' && checkChar != 'e' && checkChar != 'i' && checkChar != 'o' && checkChar != 'u' ) {
answer += checkChar;
}
}
return answer;
}
}
조건문과 반복문을 사용해서 어거지로 풀긴했는데 굉장히 비효율적임..
2번째 답안 제출
public class cote3_5 {
public String solution(String my_string) {
return my_string.replaceAll("[aeiou]", "");
}
}
replace와 replaceAll 이라는 메서드가 있는지 몰랐는데.. 이렇게하면 엄청 간단하게 구현가능했음.
메서드들 종류랑 구조 다시한번 공부하기..