티스토리 뷰
반응형
문제
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
입력
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
출력
첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.
예시 입력
StuDY
예시 출력
sTUdy
문제 풀이
[첫번째 풀이]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input = in.next();
for (char c : input.toCharArray()) {
if (Character.isLowerCase(c)) {
System.out.print(String.valueOf(c).toUpperCase());
} else {
System.out.print(String.valueOf(c).toLowerCase());
}
}
}
}
(Time 163ms / Memory 27MB)
import java.util.Scanner;
public class Main {
public void Solution(String str) {
for (char c : str.toCharArray()) {
if (Character.isLowerCase(c)) {
System.out.print(String.valueOf(c).toUpperCase());
} else {
System.out.print(String.valueOf(c).toLowerCase());
}
}
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input = in.next();
Main main = new Main();
main.Solution(input);
}
}
(Time 147ms / Memory 27MB)
[두번째 풀이]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input = in.next();
for (char c : input.toCharArray()) {
int i = (int) c;
if (i <= 90) {
System.out.print((char) (i + 32));
} else {
System.out.print((char) (i - 32));
}
}
}
}
(Time 150ms / Memory 27MB)
import java.util.Scanner;
public class Main {
public void Solution(String str) {
for (char c : str.toCharArray()) {
int i = (int) c;
if (i <= 90) {
System.out.print((char) (i + 32));
} else {
System.out.print((char) (i - 32));
}
}
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input = in.next();
Main main = new Main();
main.Solution(input);
}
}
(Time 153ms / Memory 27MB)
- Character 클래스를 이용해 대문자인지 혹은 소문자인지 판단 후 true면 소문자로, false면 대문자로 개행없이 콘솔에 출력시켜주었다.
- 첫번째 풀이처럼 풀었을 때는 함수를 작성 후 변수를 넘겨 풀었을 때 더 시간이 단축되었다.
- 두번째 풀이처럼 ASCII 코드로 대문자인, 소문자인지 비교하는 방법도 있다고 해서 풀어보았다.
- 문자를 int형으로 변환하면 65~90이 대문자 알파벳, 97~122가 소문자 알파벳이므로 32를 +-하여 변환할 수 있다.
반응형
'Java > Coding Test' 카테고리의 다른 글
[코딩테스트] 중복문자제거 (0) | 2022.02.25 |
---|---|
[코딩테스트] 특정 문자 뒤집기 (0) | 2022.02.22 |
[코딩테스트] 단어 뒤집기 (0) | 2022.02.22 |
[코딩테스트] 문장 속 단어 (0) | 2022.02.22 |
[코딩테스트] 문자 찾기 (0) | 2022.02.21 |