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
- MongoDB
- 코딩기초트레이닝
- SEF2022
- 22938번
- python
- 장고 다중이미지
- ㅐㄱ이
- sql
- 프로그래머스
- 개인정보수집유효기간
- 프론트엔드
- css
- useState
- GIT
- 프로그래머스입문
- jquery
- 반응형
- 스파르타
- 참가후기
- 스파르타코딩클럽
- html
- 장고이미지처리
- 파이썬무료강의
- error
- 파이썬
- React
- 20492번
- django multi image
- 무료강의
- 네이버커넥트재단
Archives
- Today
- Total
코딩,해볼까
08.18. 프로그래머스 : 둘만의 암호 본문
🔎 둘만의 암호
문제 규칙에 따라 해석된 암호를 return 하자.
▶ 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다.
▶ index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다.
▶ skip에 있는 알파벳은 제외하고 건너뜁니다.
1. 알파벳 배열을 만든 후 - skip 해준다.
2. 주어진 문자열 s의 알파벳의 인덱스를 구한다.
3. 만약 s의 인덱스 + 주어진 index > 알파벳 배열의 길이 라면 두 수의 차를 구해서 인덱스로 사용한다.
4. 각 글자들을 answer 에 + 해서 출력한다.
💡 문제풀이#1
def solution(s, skip, index):
answer = ''
alpha = 'abcdefghijklmnopqrstuvwxyz'
alpha2 = [] #alpha - skip
for i in alpha:
alpha2.append(i)
for i in skip:
alpha2.remove(i)
alpha2_length = len(alpha2)
# s = "aukks" "wbqd" 5 "happy"
for i in s:
idx = alpha2.index(i)
plus_idx = idx + index
if plus_idx < alpha2_length:
answer += alpha2[plus_idx]
else:
while plus_idx >= alpha2_length:
plus_idx -= alpha2_length
answer += alpha2[plus_idx]
return answer
💡 문제풀이#2
def solution(s, skip, index):
answer = ''
alpha = 'abcdefghijklmnopqrstuvwxyz'
alpha2 = []
for i in alpha:
alpha2.append(i)
for i in skip:
alpha2.remove(i)
alpha2_length = len(alpha2)
for i in s:
idx = alpha2.index(i) + index
divide = idx % alpha2_length
answer += alpha2[divide]
return answer
💡 다른 사람의 풀이#1 : ascii_lowercase
from string import ascii_lowercase
alpha = list(ascii_lowercase) #아스키코드로 alphabet 배열 만들기
# print(alpha)이런 방법도 있다~
def solution(s, skip, index):
answer = ''
for sk in skip:
alpha.remove(sk)
for str_s in s:
idx_s = alpha.index(str_s)
answer += alpha[(idx_s + index) % len(alpha)]
return answer
💡 다른 사람의 풀이#2 : 유니코드
유니코드 a = 97 z = 122 를 이용해서 풀이하였다.
▶ ord() 유니코드 문자로 변경
▶ chr() 유니코드 문자를 숫자로 변경
def solution(s, skip, index):
answer = ''
arr = [chr(i) for i in range(97, 123) if chr(i) not in skip] * 10
# print(arr, len(arr))
for i in s:
answer += arr[arr.index(i) + index]
return answer
'Back > TIL' 카테고리의 다른 글
DFS : 깊이 우선 탐색 (1) | 2023.08.21 |
---|---|
08.20. 프로그래머스 : 개인정보 수집 유효기간 🔥 (0) | 2023.08.20 |
08.19. 프로그래머스 : 피보나치 수 (0) | 2023.08.19 |
08.17. 프로그래머스 : 신규 아이디 추천 (0) | 2023.08.17 |
08.16. 프로그래머스 : 행렬의 곱셈 (0) | 2023.08.16 |
Comments