반응형
문제는 다음과 같습니다.
https://www.acmicpc.net/problem/2744
2744번: 대소문자 바꾸기
영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.
www.acmicpc.net
풀이 과정은 다음과 같습니다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
cin>>s;
for(int i{0};i<s.size();i++)
{
if(s[i]>='a'&&s[i]<='z')
{
s[i]=s[i]-32;
}
else
{
s[i]=s[i]+32;
}
}
cout<<s<<endl;
return 0;
}
저는 아스키코드를 이용하여 문제를 풀었습니다. 대소문자를 바꾸는 방법에는
<cctype>헤더파일을 include하여 tolower, toupper를 쓸 수도 있습니다만 다른 헤더파일을 사용하지 않고 아스키코드로 해결할 수 있기 때문에 이러한 방법을 이용하여 풀었습니다.
동일한 알파벳(예시로, A 와 a , B와 b)에 대하여 대문자와 소문자의 아스키코드 차이는 32이라는 점과 대문자 알파벳의 아스키코드가 소문자 알파벳의 아스키코드보다 먼저라는 점(즉, 아스키코드 숫자가 더 작다는 점)을 알고 계신다면 해결하실 수 있습니다.
반응형
'백준 문제풀이' 카테고리의 다른 글
2985번 : 세 수 (0) | 2022.08.03 |
---|---|
1436번 : 영화감독 숌 (0) | 2022.07.26 |
11721 번 : 열 개씩 끊어 출력하기 (0) | 2022.06.08 |
10817 번 : 세 수 (0) | 2022.06.08 |
11653번 : 소인수분해 (0) | 2022.06.08 |