[프로그래머스] 연습문제 "시저암호" (파이썬)

2022. 5. 2. 21:54·Problem Solving/프로그래머스
문제

https://programmers.co.kr/learn/courses/30/lessons/12926

 

코딩테스트 연습 - 시저 암호

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀

programmers.co.kr

 

 

코드
def solution(s, n):
    sList = list(s)		#sList에 입력받은 글자를 list형태로 잘라서 저장
    for i in range(len(sList)):	#sList 길이만큼 반복
        if sList[i].isupper():	#리스트에 든 글자가 대문자인 경우
            sList[i] = chr((ord(sList[i])-ord('A') +n) %26+ord('A'))
        elif sList[i].islower():	#소문자인 경우
            sList[i] = chr((ord(sList[i])-ord('a') +n) %26+ord('a'))
    return ("".join(sList))	#리스트의 글자를 합쳐 하나의 문자열로 return

 

 

 

코드 설명
        if sList[i].isupper():
            sList[i] = chr((ord(sList[i])-ord('A') +n) %26+ord('A'))
        elif sList[i].islower():
            sList[i] = chr((ord(sList[i])-ord('a') +n) %26+ord('a'))

ord(): 문자를 아스키 코드로 바꿔주는 함수

chr(): 아스키 코드를 문자로 바꿔주는 함수

 

ex. 입력이 B, 4인 경우

A의 아스키 코드 값 = 65

B의 아스키 코드 값 = 66

따라서 66 (ord(sList[i])) - 65 (ord('A')) + 4 (n) = 5

5 % 26 = 5

5 + 65 (ord('A')) = 70

chr(70) = F

 

 

 

마무리

문자열... 역시 어렵다...

저작자표시 비영리 변경금지 (새창열림)

'Problem Solving > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 위클리 챌린지 "부족한 금액 계산하기"(파이썬)  (0) 2022.05.05
[프로그래머스] 연습문제 "x만큼 간격이 있는 n개의 숫자"(파이썬)  (0) 2022.05.04
[프로그래머스] 연습문제 "핸드폰 번호 가리기"(파이썬)  (0) 2022.05.02
[프로그래머스] 완전탐색 "모의고사" (파이썬)  (0) 2022.04.30
[프로그래머스] 월간 코드 챌린지 시즌2 "음양 더하기" (파이썬)  (0) 2022.04.25
[프로그래머스] 월간 코드 챌린지 시즌3 "없는 숫자 더하기" (파이썬)  (0) 2022.04.25
'Problem Solving/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 연습문제 "x만큼 간격이 있는 n개의 숫자"(파이썬)
  • [프로그래머스] 연습문제 "핸드폰 번호 가리기"(파이썬)
  • [프로그래머스] 완전탐색 "모의고사" (파이썬)
  • [프로그래머스] 월간 코드 챌린지 시즌2 "음양 더하기" (파이썬)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍
        • Programming
        • C | C++
        • Java
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    플러터
    리액트
    Jiraynor Programming
    React
    타입스크립트
    bfs
    d3
    자바
    구현
    파이썬
    Til
    AWS
    블로그 제작
    웹사이트
    mysql
    ZeroCho
    Next.js
    강의내용정리
    프로그래머스
    컴퓨터네트워크
    프로젝트
    spring boot
    클론 프로젝트
    SWEA
    자바스크립트
    포트폴리오
    공식문서
    알고리즘
    백준
    뉴렉처
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[프로그래머스] 연습문제 "시저암호" (파이썬)
상단으로

티스토리툴바