1.문자열입력받는다(알파벳)
2.대문자 -> 소문자 // 소문자 -> 대문자 변환해라
입력값
kONG
출력값
Kong
강의 듣기전 푼 코드

푼 과정에서의 생각
1. 문자를 받을 Scanner 를 Main 에 만들고
2. 받은 문자를 변수에 담아 Solution 에 전달한다.
3. 전달한 값을 구분해서 담을 array 를 선언하고
4. for 문으로 문자열의 길이만큼 돌리고
알파벳의 아스키코드가 대문자보다 소문자가 큰 것을 이용했으며 이때 기준점을 소문자 알파벳중 가장 작은 a 를 기준으로 구분해준다.
5. 그 기준으로 선언해 놓은 배열에 문자열을 charAt으로 잘라서 해당 위치의 문자열을 조건에 맞게 변경해준다.
6. 이 변경된 값을 return 값에 담기위해 향상된 for문을 통해 배열의 문자 값들을 이어서 문자열을 완성해준다.
import java.util.Scanner;
public class Main {
public String solution(String str) {
char[] a = new char[str.length()];
String answer="";
for(int i = 0; i<str.length(); i++) {
if(str.charAt(i)<'a') {
a[i]=str.toLowerCase().charAt(i);
}else {
a[i]=str.toUpperCase().charAt(i);
}
}
for(char x : a) {
answer=answer+x;
}
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));
}
}
강사님 코드

알아야할 코드들!
1. 문자열이 아닌 문자 자체를 구분해 주는 기능을 갖은 코드!
isLowerCase(문자) 해당 문자가 소문자면 참 아니면 거짓을 반환.
2.문자 자체를 대소문자로 각각 바꿔주는 기능을 갖은 코드!
Character.toUpperCase(문자) 대문자로 바뀜.
Character.toLowerCase(문자) 소문자로 바뀜.
훨씬 간단하게 풀 수 있었음.
아스키번호 로 푸는 방법(강사님 방법)
알파벳 대문자 65~90 알파벳 소문자 97~122
즉 대소문자의 차이는 32차이가 난다.
이 32 차이를 이용해서 대소문자 변경이 가능하다!

문자가 숫자와 비교하면 바로 아스키코드로 비교가 되는데 97과 122 사이가 참이라면
그 문자는 소문자일 것이다. 이때 소문자에 32를 빼주면 해당 알파벳의 대문자가 나오게 된다.
코테 관련해서 많이 부담스러웠는데 강의를 통해 푸는 방법을 배우니까 재밌는것 같습니다.
출처 : 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 대시보드 - 인프런 | 강의 (inflearn.com)
'알고리즘 > Java 코딩 테스트 준비' 카테고리의 다른 글
[java] 회문(앞에서 뒤에서 읽을 때 같은 문자) 문자열 풀기 (0) | 2023.01.24 |
---|---|
[Java] 특정 조건에 부합되는 문자 뒤집기(알파벳만 위치 바꾸기) (0) | 2023.01.23 |
[Java] 단어 뒤집기(StringBuilder.reverse()) (0) | 2023.01.22 |
[Java] 문장 속 단어(문장 속 가장 긴 단어를 출력하시오) (0) | 2023.01.22 |
[Java]문자열에 포함된 문자 개수 찾기. (0) | 2023.01.21 |
댓글