본문 바로가기

문자열20

[ 파이썬(python) ] 백준 1157 - 단어 공부 📍 백준 1157 - 단어 공부 백준 1157 - 단어 공부 💡 나의 풀이 언젠가 이 문제를 보고 풀 엄두가 나지 않아서 북마크로 추가만 했었는데, 오늘 다시보니까 풀 수 있었다. 약간 까다로운 문제인데 count, index 함수를 사용하면 금방 풀 수 있었다. 먼저 for문을 풀어서 작성하고 이후에 list_comprehension으로 코드를 단축시켰다. 이해하기 쉽도록 예제 입력에 나와있는 Mississipi를 기준으로 알아보자. 입력을 대문자 or 소문자로 통일 시킨다. (이후에 set으로 변환하기 위함.) 입력을 set으로 형 변환을 시켜 중복을 제거한다. set형으로 for문을 돌려 입력에 i값이 몇 번 쓰였는지 확인하고 빈 리스트에 append시킨다. count_list = [1, 4, 1,.. 2021. 5. 13.
[ 파이썬(python) ] 백준 5598 - 카이사르 암호 📍 백준 5598 - 카이사르 암호 백준 5598 - 카이사르 암호 ⚡️ 나의 풀이 내가 풀었던 하드코딩 방식보다는 다른 사람이 푼 방식이 조금 더 괜찮아 보였다. key에 1부터 26까지 value에 알파벳을 dict에 선언한다. 알파벳 문자를 3개씩 건너뛰는데 다른 문자는 상관없지만 A, B, C는 index_error가 발생한다. 따라서, 입력에 A, B, C가 포함되어있으면 X, Y, Z와 매칭되게한다. # 내가 작성한 코드 s = input() x = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' alphabet = {} for i in range(1, 27): alphabet[i] = x[i-1] temp = '' for i in s: if i == 'A' or i == 'B' or i .. 2021. 5. 11.
[ 6. 문자열 조작 ] - 그룹 애너그램(Group Anagrams) 📍 그룹 애나그램 애너그램 이란 일종의 말장난으로 어떠한 단어의 문자를 재배열하여 다른 뜻을 가지는 다른 단어로 바꾸는 것을 말한다. 예를들면 listen의 알파벳을 다시 조합하면 silent가 되는것이 있다. ⚡️ 나의 풀이 어찌됐건 애나그램은 문자열 하나씩 분리해서 재 조합하는것이기 때문에 같은 알파벳이 쓰였는지 확인하려면 하나씩 분리해서 정렬하면 된다. 예를 들어, 문제 입력 strs = ["eat","tea","tan","ate","nat","bat"]을 기준으로 설명하면 strs를 반복문으로 하나씩 정렬하면 다음과 같은 결과가 나온다. strs = ["eat","tea","tan","ate","nat","bat"] for i in strs: print(sorted(list(i)), i) ''' .. 2021. 4. 6.
[ 6. 문자열 조작 ] - 문자열 슬라이싱(String Slicing) 💡 문자열 슬라이싱 파이썬의 문자열 슬라이싱은 내부적으로 매우 빠르게 동작한다. 위치를 지정하면 해당 위치의 배열 포인터를 얻게 되며, 이를 통해 연결된 객체를 찾아 실제 값을 찾아내는데, 이 과정은 매우 빠르게 진행되므로 문자열을 조작할 때는 항상 슬라이싱을 우선으로 사용하는 편이 속도 개선에 유리하다. 다음 표는 슬라이싱과 다른 연산 작업의 속도를 비교한 결과인데, 슬라이싱의 빠른 속도를 잘 보여준다. 알고리즘 실행 시간 `슬라이싱` 0.499 마이크로초 `리스트 reverse()` 2.46 마이크로초 `reversed() + join()` 2.49 마이크로초 `for 반복` 5.5 마이크로초 `while 반복` 9.4 마이크로초 재귀 24.3 마이크로초 2021. 4. 2.
[python] 백준 11656 - 접미사 배열 📍 백준 11656 - 접미사배열 문제링크: 백준 11656 - 접미사배열 💡 나의 풀이 list comprehension으로 result 변수에 0부터 len(s)까지의 길이를 각각 슬라이싱에 대입했다. 조건에 정렬도 붙어있어 sort를 해줬다. s = input() result = [s[i:] for i in range(len(s))] result = sorted(result) for i in result: print(i) 👉🏽 aekjoon baekjoon ekjoon joon kjoon n on oon 2021. 4. 1.