본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python 기초 100제] 6074번 : [기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기

by 빛밤하늘 2021. 8. 3.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

 

[기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기(설명)(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

 

 

 

 

 

 

 

주의해야 할 

readline을 사용해서 입력하므로 맨 끝에 \n은 떼야한다는 것을 잊으면 안 됩니다.

 

 

출력 형식도 주의해야 합니다.

print를 그냥 사용하면 다음 출력을 위해 자동으로 다음 줄로 내립니다.

그런데 이번 문제에서는 다음 영어 소문자를 출력할 때, 한 칸만 띄어야 합니다.

 

 

이번 문제에서 영어 소문자를 순서대로 무언가를 하는 것처럼, 

영어 대문자를 순서대로, 혹은 숫자를 순서대로 처리를 하는 것은 다른 문제에서도 쉽게 볼 수 있습니다.

그때는 이번 문제처럼 ord, chr 함수를 자주 사용하시게 될 텐데 잊지 않으셔야 합니다.

 

밑의 링크들은 ord, chr 내장 함수에 대해서 제 블로그에서 정리한 내용들입니다.

 

[Python] ord 내장 함수 : 한 문자를 유니코드로 변환

백준에 있는 문제들을 풀면서 알파벳이나 숫자들을 유니코드로 변환해서 푸는 문제들이 많이 나왔습니다. 파이썬에는 유니코드와 관련된 문제들을 해결하기 위해 한 문자를 유니코드로 변환하

brightnightsky77.tistory.com

 

[Python] chr 내장 함수 : 유니코드를 한 문자로 변환

2021.05.31 - [프로그래밍/Python] - [Python] ord 내장 함수 : 한 문자를 유니코드로 변환 [Python] ord 내장 함수 : 한 문자를 유니코드로 변환 백준에 있는 문제들을 풀면서 알파벳이나 숫자들을 유니코드로

brightnightsky77.tistory.com

 

밑의 링크들은 ord, chr 내장 함수를 사용했던 다른 알고리즘 문제들입니다.

 

[백준][solved.ac][Bronze 1][Python] 12778번 : CTP공국으로 이민 가자

밑의 링크는 백준에서의 문제 링크입니다. 12778번: CTP공국으로 이민 가자 신생국가 CTP공국은 자신들만의 글자가 없다. CTP공국의 왕 준형이는 전 세계 표준 언어인 알파벳을 사용하기로 했다. 하

brightnightsky77.tistory.com

 

 

[백준][solved.ac][Bronze 1][Python] 11091번 : 알파벳 전부 쓰기

밑의 링크는 백준에서의 문제 링크입니다. 11091번: 알파벳 전부 쓰기 팬그램은 26개의 알파벳, a~z를 최소 한번씩 모두 사용한 문장을 말한다. 아마 가장 유명한 문장은 이것일 것이다. "The quick brow

brightnightsky77.tistory.com

 

[백준][solved.ac][Bronze 2][Python] 6321번 : IBM 빼기 1

밑의 링크는 백준에서의 문제 링크입니다. 6321번: IBM 빼기 1 첫째 줄에 컴퓨터의 개수 n이 주어진다. 다음 줄부터 n개의 줄에는 컴퓨터의 이름이 주어진다. 컴퓨터의 이름은 최대 50글자이며, 알

brightnightsky77.tistory.com

 

다른 문제들도 더 있는데 블로그 내에서 ord이나 chr로 검색하시면 됩니다.

 

 

 

 

 

 

 

 

생각한 풀이 과정

  1. 영어 소문자 1개를 입력합니다. 맨 끝의 \n은 떼어줍니다.
  2. 입력한 영어 소문자의 다음 영어 소문자에 해당하는 유니코드를 구하고 변수 next_eng_char_code에 저장합니다.
  3. a부터 입력한 영어 소문자의 유니코드를 차례로 저장할 변수 alphabet_code를 선언합니다. 처음에는 a의 유니코드로 초기화합니다.
  4. alphabet_code에 저장되어 있는 유니코드와 next_eng_char_code에 저장되어 있는 유니코드가 다르면 계속 반복하는 반복문을 만듭니다.
  5. alphabet_code에 저장된 유니코드에 해당하는 문자를 출력합니다. 출력하고 나서 다음 줄로 바꾸지 않고 다음 한 칸만 띄어줍니다.
  6. 다음 영어 소문자를 출력하기 위해 alphabet_code에 저장된 유니코드에 1을 더해줍니다.
  7. alphabet_code에 저장되어 있는 유니코드와 next_eng_char_code에 저장되어 있는 유니코드가 같아질 때까지 과정 5 ~ 과정 6을 반복합니다.




 

 

 

 

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 영어 소문자 1개를 입력합니다.
# 맨 끝의 \n은 떼어줍니다.
eng_char = stdin.readline().rstrip()
# 입력한 영어 소문자의 다음 영어 소문자에 해당하는 유니코드를 저장하는 변수를 선언합니다.
next_eng_char_code = ord(eng_char) + 1
# 영어 소문자 유니코드 숫자를 a의 유니코드부터 입력한 영어 소문자의 유니코드까지
# 차례로 저장할 변수를 선언합니다.
# 처음에는 a의 유니코드로 초기화합니다.
alphabet_code = ord('a')

# 현재 영어 소문자의 유니코드와 next_eng_char_code에 저장된 유니코드가 같지 않으면 계속 반복합니다.
while alphabet_code != next_eng_char_code:
    # alphabet_code에 저장된 유니코드에 해당하는 영어 소문자를 출력합니다.
    # 출력 형식에 맞게 다음 줄로 내리지 않고 다음 한 칸을 띄어줍니다.
    print(chr(alphabet_code), end=' ')
    # 다음 영어 소문자를 표현하기 위해 alphabet_code에 저장된 유니코드에 1을 더합니다.
    alphabet_code += 1

 

 

 

제출 결과

결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글