[Programmers] #181949 - 대소문자 바꿔서 출력하기 [Java][C++][Python]
입력받은 문자열의 대소문자를 서로 바꿔 출력하는 워밍업 문제.
[Programmers] #181949 - 대소문자 바꿔서 출력하기 [Java][C++][Python]
1. 아이디어
알파벳으로만 이루어진 문자열을 입력받아 대문자는 소문자로, 소문자는 대문자로 바꿔 출력하면 되는 문제다. 아스키코드에서 알파벳 대문자와 소문자는 32만큼 차이나므로, 각 문자의 코드값에 32를 더하거나 빼는 방식으로 대소문자를 반전시킬 수 있다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(N)$ | $O(N)$ |
($N$ = 입력 문자열의 길이)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (char c : br.readLine().toCharArray()) {
if ('a' <= c && c <= 'z') {
System.out.print((char) (c - 'a' + 'A'));
} else {
System.out.print((char) (c - 'A' + 'a'));
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
for (char c : s) {
if ('a' <= c && c <= 'z') {
cout << (char)(c - 'a' + 'A');
} else {
cout << (char)(c - 'A' + 'a');
}
}
}
1
2
3
4
5
import sys
input = sys.stdin.readline
print(input().swapcase())
Python은 대소문자를 반전하는 swapcase() 내장 메서드를 제공해 Java/C++처럼 아스키코드를 직접 계산할 필요가 없다.
This post is licensed under CC BY 4.0 by the author.