Q.N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하라
Class Main {
public ArrayList<String> solution(int n, String[] str){
ArratList<String> answer = new ArratList<>();
for(String x : str) {
String tmp = new StringBuilder(x).reverse().toString();
answer.add(tmp);
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
String[] str = new String[n];
for(int i-0; i<n; i++){
str[i] = kb.next();
}
for(String x : T.solution(n, str)){
System.out.println(x);
}
}
}
- StringBuilder.reverse() 메서드를 통해서 글자를 뒤집어준다. 그 후 toString() 메서드를 통해 문자열화한다.
- 다만, 이 경우 모든 글자가 뒤집어지니 특정 문자를 뒤집고싶을 경우 아래의 알고리즘을 따라야한다.
Q.특정 조건에 맞는 단어만 뒤집어라
Class Main {
public ArrayList<String> solution(int n, String[] str){
ArratList<String> answer = new ArratList<>();
for(String x : str) {
char[] s = x.toCharArray();
int lt = 0;
int rt = x.length()-1;
while(lt<rt){
char tmp = s[lt];
s[lt] = s[rt];
s[rt] = tmp;
lt++;
rt--;
}
String y = String.valueOf(s);
answer.add(y);
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
String[] str = new String[n];
for(int i-0; i<n; i++){
str[i] = kb.next();
}
for(String x : T.solution(n, str)){
System.out.println(x);
}
}
}
- toCharArray() 메서드를 통해 문자열을 문자배열화 한다.
- lt rt
- open
- npeo
- ltrt
- nepo
- valueOf() 메서드를 통해 뒤집은 문자배열을 문자열화 시켜준다.
Q.특정 조건에 맞는 단어만 뒤집어라
단, 영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집어라
Class Main {
public ArrayList<String> solution(String str){
String answer;
char[] s = str.toCharArray();
int lt = 0;
int rt = str.length()-1;
while(lt<rt) {
if(!Character.isAlphabetic(s[lt])) {
lt++;
} else if(!Character.isAlphabetic(s[rt])) {
rt--;
} else {
char tmp = s[lt];
s[lt] = s[rt];
s[rt] = tmp;
lt++;
rt--;
}
}
answer = String.valueOf(s);
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
'알고리즘' 카테고리의 다른 글
[Array(1,2차원 배열)] 큰 수 출력하기 & 보이는 학생 & 가위바위보 (0) | 2023.03.23 |
---|---|
[문자열] 문자열 압축 & 암호(replace(), parseInt(string,2)) (0) | 2023.03.23 |
[문자열] 숫자만 추출 & 문자거리 (0) | 2023.03.23 |
[문자열] 중복문자 제거 & 회문 문자열 & 유효한 팰린드롬 (0) | 2023.03.22 |
[문자열] 문자 찾기 & 대소문자 변환 & 문장 속 단어찾기(indexOf(), substring()) (0) | 2023.03.22 |