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 |
Tags
- 김영한
- 프로세스 주소 공간
- B tree 데이터삽입
- Extendable hashing
- 반효경
- Git
- vite
- 온디바이스AI
- 인터럽트
- SDK
- 데이터베이스
- 트랜잭션
- 개발남노씨
- recoverability
- 운영체제
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- 갤럭시 S24
- 코딩테스트 [ ALL IN ONE ]
- 백엔드
- 시그널 핸들러
- 코딩애플
- concurrency control
- 네트워크
- 운영체제와 정보기술의 원리
- CPU 스케줄링
- 시스템프로그래밍
- 쉬운코드
- 커널 동기화
- SQL
- 쉬운 코드
Archives
- Today
- Total
티끌모아 태산
[백 준/구현] 11655: ROT13 본문
728x90
https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
코드 구현
# ord()와 chr()을 통해 쉽게 해결가능
# print(ord('a')) 97
# print(ord('z')) 122
# print(ord('A')) 65
# print(ord('Z')) 90
# print(ord('m')) 109
# print(ord('M')) 77
ans = '' # 바뀐 문자열을 담을 변수
for i in input():
# 만약 대문자라면
if i.isupper():
if (65 <= ord(i) <= 77):
ans += chr(ord(i)+13) # A ~ M
else:
ans += chr(ord(i)-13) # N ~ Z
# 만약 소문자라면
elif i.islower():
if (97 <= ord(i) <= 109):
ans += chr(ord(i)+13) # a ~ m
else:
ans += chr(ord(i)-13) # m ~ z
else:
ans += i
print(ans)
처음에는 좀 무식한 방법을 고민했었다. 리스트에 a~z, A~Z 이런식으로 담아놓고 arr1[i] = arr2[i] 이런식으로 할당해서 풀었는데 도무지 비효율적인거 같아서 구글링을 해보았더니 ord()와 chr()를 통해 쉽게 구할 수 있었다...
- ord(), chr() 함수 활용하기
- isupper(). islower() 활용.
- "알파벳이 아닌 글자는 원래 글자 그대로 남아 있어야 한다" 조건 까먹지 않기
728x90
'백준 문제 > 문자열,누적합,구현' 카테고리의 다른 글
[백 준/구현] 1940: 주몽 (1) | 2023.12.27 |
---|---|
[백 준/구현] 1213: 팰린드롬 만들기 (1) | 2023.12.26 |
[백 준/구현] 10988: 팰린드롬인지 확인하기 (0) | 2023.12.26 |