Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Lv. 0
- javascript
- dfs
- bfs
- 너비 우선 탐색
- Dynamic Programming
- Python
- Lv. 3
- 동적계획법
- C언어
- select
- Lv. 2
- SQL 고득점 KIT
- 자바스크립트
- 파이썬
- 소프티어
- 오블완
- Lv. 1
- join
- 깊이 우선 탐색
- 프로그래머스
- softeer
- DP
- group by
- programmers
- 티스토리챌린지
- level 3
- Java
- SQL
- LEVEL 2
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
프로그래머스 [Lv. 1] 시저 암호 {언어 : Python} 본문
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12926?language=python3
정답 코드
def solution(s, n):
# print(ord("A")) 65
# print(ord("Z")) 90
# print(ord("a")) 97
# print(ord("z")) 122
def makeString(si):
if si == " ":
return " "
elif si.isupper():
return chr((ord(si)-65+n)%26+65)
else:
return chr((ord(si)-97+n)%26+97)
sb = []
for si in s:
sb.append(makeString(si))
answer = "".join(sb)
return answer
풀이 방법
- ord(문자) = 아스키코드 문자에 해당하는 숫자
- 예를 들어 ord("A") == 65
- chr(숫자) = 아스키코드 숫자에 해당하는 문자
- 예를 들어 chr(65) == "A"
- isupper : 대문자이면 True 아니면 False
- islower : 소문자이면 True 아니면 False
- string builder : 문자열을 저장해주는 리스트
- 시간복잡도 차이
- 문자열 += 문자
- O(n)
- 리스트.append(문자)
- O(1)
- 문자열 += 문자
- 시간복잡도 차이
느낀점
- 어떻게 푸는지 알지만 함수명이 기억나지 않았다.
'개발 언어 입문 > 파이썬 문법' 카테고리의 다른 글
프로그래머스 [Lv. 0] 문자 반복 출력하기 {언어 : Python} [lambda + map] (0) | 2024.08.18 |
---|