티스토리 뷰
4. 단어 뒤집기
- N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성
- 첫 줄에 자연수 N(3<=N<=20) 입력
- 두 번째 줄부터 N개의 단어가 각 줄에 하나씩 작성
- 단어는 영어 알파벳으로만 구성되어 있습니다.
- N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.
방법 1.
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static String solution(String keyword){
String answer = new StringBuilder(keyword).reverse().toString();
return answer;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] str = new String[n];
for(int i=0;i<n;i++){
str[i] = solution(sc.next());
}
for(String x : str){
System.out.println(x);
}
}
}
방법 2.
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static String solution(String str){
String answer= "";
char[] strAry = str.toCharArray();
int start =0, end=str.length()-1;
while (start < end){
char temp = strAry[start];
strAry[start] = strAry[end];
strAry[end] =temp;
start++;
end--;
}
answer = String.valueOf(strAry);
return answer;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int cnt = sc.nextInt();
String[] keyword = new String[cnt];
for(int i =0;i<cnt;i++){
keyword[i] =solution(sc.next());
}
for(String x : keyword){
System.out.println(x);
}
}
}
5. 특정 문자 뒤집기
- 영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,
특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성
import java.util.Scanner;
public class Main {
public static String solution(String str){
String answer;
char[] strAry = str.toCharArray();
int lt =0, rt=str.length()-1;
while (lt < rt){
if(!Character.isAlphabetic(strAry[lt])) lt++;
else if(!Character.isAlphabetic(strAry[rt])) rt--;
else {
char temp = strAry[lt];
strAry[lt] = strAry[rt];
strAry[rt] = temp;
lt++;
rt--;
}
}
answer = String.valueOf(strAry);
return answer;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(solution(sc.next()));
}
}
6. 중복문자 제거
- 소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성
- 중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지
import java.util.Scanner;
public class Main {
public static String solution(String str){
String answer ="";
for(int i=0; i<str.length(); i++){
//System.out.println(str.charAt(i) + " // " + str.indexOf(str.charAt(i)) );
if(str.indexOf(str.charAt(i)) == i ) answer+= str.charAt(i);
}
return answer;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(solution(sc.next()));
}
}
7. 회문 문자열
- 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 함
- 문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성
(단 회문을 검사할 때 대소문자를 구분 x)
방법 1.
import java.util.Scanner;
public class Main {
public static String solution(String str){
String answer = "YES";
str = str.toUpperCase();
for(int i =0; i<len/2; i++){
if(str.charAt(i) != str.charAt(len-i-1)) return "NO" ;
}
return answer;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(solution(sc.next()));
}
}
방법 2.
import java.util.Scanner;
public class Main {
public static String solution(String str){
String answer = "YES";
String strReverse = new StringBuilder(str).reverse().toString();
if(!str.equalsIgnoreCase(strReverse)) answer="NO";
return answer;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(solution(sc.next()));
}
}
8. 유효한 팰린드롬
- 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다.
- 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요.
- 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다.
- 알파벳 이외의 문자들의 무시합니다.
import java.util.Scanner;
public class Main {
public static String solution(String str){
String answer = "NO";
str = str.toUpperCase().replaceAll("[^A-Z]","");
String strReverse = new StringBuilder(str).reverse().toString();
if(str.equalsIgnoreCase(strReverse)) answer="YES";
return answer;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(solution(sc.nextLine()));
}
}
'코테공부' 카테고리의 다른 글
[코테공부] Stack, Queue (1) (0) | 2023.07.10 |
---|---|
[코테공부] HashMap, HashSet, TreeSet (0) | 2023.06.20 |
[코테공부] String 문자열3 (0) | 2023.01.11 |
[코테공부] String 문자열 문제 (0) | 2023.01.04 |
댓글
최근에 올라온 글
최근에 달린 댓글
링크
- Total
- Today
- Yesterday