반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
11-07 11:40
관리 메뉴

ImJay

[파이썬/Python] 백준 2744번 대소문자 바꾸기 본문

Solved.ac - Python/Bronze V

[파이썬/Python] 백준 2744번 대소문자 바꾸기

ImJay 2022. 9. 13. 09:09
반응형

[파이썬/Python] 백준 2744번 대소문자 바꾸기

www.acmicpc.net/problem/2744

 

2744번: 대소문자 바꾸기

영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.

www.acmicpc.net


문제

영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.

코드

word = input()

for i in word:
    if i >= "a" and i <= "z":
        print(chr(ord(i)-32), end='')
    else:
        print(chr(ord(i)+32), end='')

풀이

1. input 메소드를 통해 영어 소문자와 대문자로 이루어진 단어를 입력받습니다.

word = input()

 

2. 반복문을 통해 대문자는 소문자로, 소문자는 대문자로 바꾸어줍니다.

for i in word:
    if i >= "a" and i <= "z":
        print(chr(ord(i)-32), end='')
    else:
        print(chr(ord(i)+32), end='')

2-1. for in 을 통해 해당 리스트의 인덱스를 참조할 수 있습니다.

인덱스의 처음부터 끝까지 명령문을 반복합니다.

for i in word:

2-2. 유니코드(영어: Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준입니다.

유니코드 표 일부

2-3. 파이썬의 ord 메서드는 하나의 문자를 유니코드 정수로 변환합니다.

ord(i)

i="A"라면, ord(i)는 정수 65를 반환합니다.

i="a"라면, ord(i)는 정수 97을 반환합니다.

 

2-4. 파이썬의 chr 메서드는 하나의 정수를 유니코드 문자로 변환합니다.

chr(i)

i=65라면, chr(i)는 문자 A를 반환합니다.

i=97이라면, chr(i)는 문자 a를 반환합니다.

 

2-5. 위 메서드들을 토대로 아래의 소문자를 대문자로 바꾸는 과정을 이해해봅니다.

if i >= "a" and i <= "z": 
    print(chr(ord(i)-32), end='')

1. i="a"라면, ord(i) = 97을 반환합니다.

2. 97 - 32 = 65 입니다.

3. chr(65) = "A"를 반환합니다.

나머지 알파벳 및 대문자 또한 위 알고리즘을 통해 변환됩니다.

 

마지막으로, end=''를 통해 출력조건을 만족하도록 주의합니다.

추가

위 방법 말고도 upper, lower 등의 메서드로 간단하게 대소문자 변환이 가능합니다.

유니코드(아스키코드)를 사용한 방법을 알려드리고자 작성하였습니다.

 

 

 

반응형
Comments