-
[ Python] CodeUp 1408 : 암호처리코딩테스트/CodeUp 2024. 5. 28. 09:29
[문제 풀기 전 생각한 부분]
1. 아스키코드로 변환하는 방법이 뭐더라..
2. for문을 돌리자.
[my_code]
word = input() decodeNum1 = [] decodeNum2 = [] for i in word: decodeNum1.append(chr(ord(i)+2)) decodeNum2.append(chr((ord(i)*7) % 80 + 48)) print(decodeNum1) print(decodeNum2) # 입력 TEST # 출력 결과 ['V', 'G', 'U', 'V'] ['L', '3', 'E', 'L']
[문제점]1. 각각 변환은 잘됐지만, 배열 형태로 'V', 처럼 하나씩 출력되는 게 문제 VGUV 로 출력되었어야 함.
[문제점 해결하는 중 1]1. 우선 공백을 제거 하자.
print(str(decodeNum1).replace(",","")) # 출력 결과 ['V' 'G' 'U' 'V']
- list는 append 가 되지만 replace가 안된다.
- 현재 decodeNum1의 type은 list로 replace가 되지 않아 str 형태로 변환해주어 replace 내장 함수를 사용할 수 있었다.
- 하지만 여전히 원하는 값이 나오지 않는다.
[문제점 해결]
1. 처음부터 배열로 저장하지 말고 str 형태로 저장해보자.
decodeNum3 = "" for i in word: decodeNum3 += chr((ord(i)*7) % 80 + 48) print(decodeNum3) # 입력 TEST # 출력 결과 L3EL
- 아주 잘 출력되는 것을 볼 수 있다.
- 사실 여기서도 난관이 있었는 데, str은 append를 사용할 수 없다. 따라서 += 형식으로 넣어주었다.
[완성코드]
word = input() decodeNum1 = "" decodeNum2 = "" for i in word: decodeNum1+=chr(ord(i)+2) decodeNum2 += chr((ord(i)*7) % 80 + 48) print(decodeNum1) print(decodeNum2)
[더 알아보기]
왜 str 타입에서는 append 메소드가 되지 않을까? https://studyiwthme.tistory.com/86 <- click
왜 list 타입에서는 replace 메소드가 되지 않을까? https://studyiwthme.tistory.com/87
'코딩테스트 > CodeUp' 카테고리의 다른 글
[Python] CodeUp 1406 : love (0) 2024.05.27 [Python] CodeUp 1409 : 기억력 테스트 1 (0) 2024.05.27 [Python] CodeUp 1420 : 3등 찾기 (0) 2024.05.27 [Python] 6098 기초-리스트 : 성실한 개미 (0) 2024.05.23 [Python] 6097 : 기초-리스트 설탕과자 뽑기 (0) 2024.05.22