문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
이 문제에 핵심
1. 소문자 -> 대문자, 대문자 -> 소문자 알파벳으로 변경하여 결과로 출력합니다.
2. 단어의 길이는 최대 100입니다.
알고리즘 진행 순서.
1. 입력된 단어를 저장합니다.
2. 입력된 단어의 각 글자들을 확인하여 소문자 -> 대문자, 대문자 -> 소문자로 변경합니다.
3. 변경된 단어를 결과로 출력합니다.
알파벳 변경
IDE에서 작성하는 문자들이 0과 1로 구분하여 컴퓨터에 작동됩니다.
String 형태의 알파벳을 적을 때에는 ASCII의 표에 따라 0과 1로 저장이 됩니다.
위 링크에 들어가셔서 표를 확인해보시면
A = 65번을 가르키고 있으며 컴퓨터에서 표현될 때에는 1000001로 받아들입니다.
입력받은 글자가 소문자이면 대문자, 대문자이면 소문자의 형태로 받아드리도록 위 숫자를 변경할 것입니다.
ASCII표를 확인해보시면
알파벳 소문자와 대문자의 차이는 32입니다.
A(65)일 때 소문자로 변경하기 위해서는 a(97)이 되어야 하기 때문에
'A' + 32 = 97이 되고 char형태로 나타내면 a가 결과적으로 나오게 됩니다.
소문자를 대문자로 변경하려면
a(97) -> A(65)
'a' - 32 = 65이 되고 char형태로 나타내면 A가 결과적으로 나오게 됩니다.
예제입력 1.
1. 입력된 단어를 저장합니다.
WrongAnswer
2. 입력된 단어의 각 글자들을 확인하여 소문자 -> 대문자, 대문자 -> 소문자로 변경합니다.
W(대문자) : 'W' + 32 = w
r(소문자) : 'r' - 32 = R
o(소문자) : 'o' - 32 = O
n(소문자) : 'n' - 32 = N
g(소문자) : 'g' - 32 = G
A(대문자) : 'A' + 32 = a
n(소문자) : 'n' - 32 = N
s(소문자) : 's' - 32 = S
w(소문자) : 'w' - 32 = W
e(소문자) : 'e' - 32 = E
r(소문자) : 'r' - 32 = R
3. 변경된 단어를 결과로 출력합니다.
"wRONGaNSWER"을 결과로 출력합니다.
- BufferedReader를 사용하여 입력되는 단어를 저장합니다.
- 입력된 단어를 탐색하여 소문자 -> 대문자, 대문자 -> 소문자로 변경합니다.
- 변경된 단어를 BufferedWriter 저장하였습니다.
- BufferedWriter에 저장된 결과값을 출력하였습니다.
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
//입력값을 처리하는 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//결과값을 출력하는 BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String input = br.readLine(); //입력 단어 저장
StringBuilder sb = new StringBuilder(); //결과 저장할 StringBuilder
//입력된 단어 탐색
for(int i=0;i<input.length();i++){
char temp = input.charAt(i);
if(temp >= 65 && temp <=90) //대문자일 때
sb.append((char) (temp + 32)); //+32을 진행하여 소문자로 변경
else //소문자일 때
sb.append((char) (temp - 32)); //-32을 진행하여 대문자로 변경
}
bw.write(sb.toString()); //변경된 단어 BufferedWriter저장
bw.flush(); //결과 출력
bw.close();
br.close();
}
}
'백준' 카테고리의 다른 글
[백준] 알고리즘 분류(문자열,JAVA)2754번, 학점계산 (0) | 2022.09.18 |
---|---|
[백준] 알고리즘 분류(문자열,JAVA)1373번, 2진수 8진수 (0) | 2022.09.18 |
[백준] 알고리즘 분류(문자열,JAVA)10798번, 세로읽기 (0) | 2022.09.15 |
[백준] 알고리즘 분류(문자열,JAVA)1439번, 뒤집기 (2) | 2022.09.15 |
[백준] code.plus(브루트 포스 Part 2,JAVA)17825번, 주사위 윷놀이 (0) | 2022.09.08 |
댓글