Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_대소문자 변환) 본문
https://cote.inflearn.com/contest/10/problem/01-02
(위의 링크는 인프런 로그인 후, 해당 강의를 사지 않으면 접속이 되지 않습니다)
2. 대소문자 변환
예시 입력 1
StuDY
예시 출력 1
sTUdy
내가 푼 풀이 (Time : 145ms, Memory : 27MB)
import java.util.Scanner;
public class Main {
public String solution(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == Character.toLowerCase(str.charAt(i)))
sb.append(Character.toUpperCase(str.charAt(i)));
else
sb.append(Character.toLowerCase(str.charAt(i)));
}
return sb.toString();
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(main.solution(str));
}
}
강의 답안 1 - Character 클래스 사용 (Time : 150ms, Memory : 27MB)
Character클래스 안에 소문자가 있는지 체킹해주는 함수 isLowerCaser()가 있었다니, 역시 배우지 못하면 고생한다.
import java.util.Scanner;
public class Main {
public String solution(String str) {
String ans = "";
for (char x : str.toCharArray()) {
if (Character.isLowerCase(x)) ans += Character.toUpperCase(x);
else ans += Character.toLowerCase(x);
}
return ans;
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(main.solution(str));
}
}
강의 답안 2 - 아스키 코드 사용 (Time : 142ms, Memory : 27MB)
아스키코드로 간단하게 처리할 수 있다. 대소문자 차이는 32 라는걸 기억하자.
A ~ Z = 65 ~ 90
a ~ z = 97 ~ 122
대소문자 차이 32
import java.util.Scanner;
public class Main {
public String solution(String str) {
String ans = "";
for (char x : str.toCharArray()) {
if(x >= 97 && x <= 122) ans += (char)(x - 32);
else ans += (char)(x + 32);
}
return ans;
}
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(main.solution(str));
}
}
'알고리즘 > 인프런 - Java알고리즘 입문' 카테고리의 다른 글
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_중복 문자 제거) (0) | 2023.08.28 |
---|---|
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_특정 문자 뒤집기) (0) | 2023.08.27 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_단어 뒤집기) (0) | 2023.08.26 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_문장 속 단어) (0) | 2023.08.25 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(문자열_문자찾기) (0) | 2023.08.25 |