일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- php 프로그래밍
- 백준
- C
- php 프로그래밍 입문
- php 프로그래밍 입문 솔루션
- php 프로그래밍 입문 3판
- 자바 스프링
- 페이코 추천인코드
- php 프로그래밍 입문 문제풀이
- 페이코 친구코드
- 한정 분기
- php
- 파이썬
- php 프로그래밍 입문 연습문제
- spring
- 스프링
- JAVA SPRING
- Flutter
- 최단 경로
- C언어
- Java
- 페이코 초대코드
- programmers
- 플러터
- SWEA
- 배열
- 페이코 추천인
- 플러터 개발환경 설정
- php 프로그래밍 입문 예제
- 자바
- Today
- Total
ImJay
[파이썬/Python] 백준 2744번 대소문자 바꾸기 본문
[파이썬/Python] 백준 2744번 대소문자 바꾸기
문제
영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.
코드
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 등의 메서드로 간단하게 대소문자 변환이 가능합니다.
유니코드(아스키코드)를 사용한 방법을 알려드리고자 작성하였습니다.
'Solved.ac - Python > Bronze V' 카테고리의 다른 글
[파이썬/Python] 백준 2754번 학점계산 (2) | 2022.09.14 |
---|---|
[파이썬/Python] 백준 2753번 윤년 (0) | 2022.09.13 |
[파이썬/Python] 백준 2743번 단어 길이 재기 (0) | 2022.09.05 |
[파이썬/Python] 백준 2741번 N 찍기 (0) | 2022.09.05 |
[파이썬/Python] 백준 2739번 구구단 (0) | 2022.08.31 |