백준 문제풀이

2744번 : 대소문자 바꾸기

하다블 2022. 7. 14. 18:14
반응형

문제는 다음과 같습니다.

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