[BOJ] Python 백준 23738번 Ресторан 브론즈 2
알고리즘/알고리즘 문제 풀이2021. 11. 28. 17:28
728x90
https://www.acmicpc.net/contest/problem/725/1
문제 풀이
눈여겨봐야 할 조건은 3가지다.
- 보이는 대로 읽어야 할 알파벳과 다르게 읽어야 할 알파벳이 구분되어있다.
- 최대 100글자의 단어가 주어진다.
- 영어 소문자로 나타내 출력해야 한다.
다르게 읽어야 할 알파벳은 다음과 같다.
B->v, E->ye, H->n, P->r, C->s, Y->u, X->h
해당 부분은 파이썬의 딕셔너리(Dictionary)를 사용하면 쉽게 치환 가능하다.
최대 100글자이므로 시간 복잡도는 고려할 필요가 없을 정도로 Input Size가 작다.
입력이 대문자로 들어오고 출력은 소문자로 해야 하므로 보이는 대로 읽어야 할 알파벳은 소문자로 치환시켜야 된다.
다음은 전체 코드이다.
word=input()
russ={"B":"v","E":"ye","H":"n","P":"r","C":"s","Y":"u","X":"h"}
res=""
for i in word:
if i in russ:
res+=russ[i]
else:
res+=i.lower()
print(res)
먼저 russ란 딕셔너리에 치환해야 될 알파벳들을 넣어 놓고 Input 문자열을 하나씩 반복한다.
만약 딕셔너리에 있는 문자라면 해당 값을 res에 이어 붙이고 없는 문자라면 lower() 함수를 이용하여 대문자를 소문자로 치환한 다음 이어 붙인다.
완성된 문자열을 출력하면 정답이다.
파이썬의 딕셔너리를 사용해야겠다는 생각만 떠올리면 복잡한 인덱싱 과정도 필요 없기에 쉽게 풀 수 있는 문제였다.
728x90
'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글
[BOJ] Python 백준 23746번 문자열 압축 해제 브론즈 1 (0) | 2021.12.07 |
---|---|
[Programmers] Python 프로그래머스 프린터 Level 2 (0) | 2021.12.06 |
[Programmers] Python 프로그래머스 기능개발 Level 2 (0) | 2021.12.06 |
[BOJ] Python 백준 1072번 게임 실버 3 (2) | 2021.11.30 |
[BOJ] Python 백준 23740번 버스 노선 개편하기 골드 5 (0) | 2021.11.29 |
댓글()