상세 컨텐츠

본문 제목

99클럽 코테 스터디 4일차 TIL + 오늘의 학습 키워드 : 문자열+해시

본문

728x90
반응형

4일차 꾹!

 

제목: 99클럽 코테 스터디 4일차 TIL + 오늘의 학습 키워드 : 문자열+해시

- 오늘의 학습 키워드 : 문자열+해시

 

학습 키워드의 해시는 암호해독인가보다..;;


- 공부한 내용 본인의 언어로 정리하기
1.

 

사용예시

 

 

 


- 오늘의 회고

오늘 ..;; 이 코테 문제 정복하고 잘거야..

 

슬슬 나에게 있는 단점인, 그냥 인증하고 끝나버리는 습관이 작심삼일째 드러나고 있다.
꼭 해결하자! 적으면서 영단어 외우듯이 익숙해질 필요가 있는 것 같다

 

- 어떤 문제가 있었고, 나는 어떤 시도를 했는지

 

def solution(s):
    # 영어가 저장된 리스트 만들기
    english_list = ['zero','one','two','three','four','five','six','seven','sight','nine']
    # 각 배열의 인덱스는 0부터 시작하기 때문에 
    # for문을 돌려서 s 라는 문자열에 해당 english_list[i]~[9]까지 돌려서 발견한 문자열이 있다면,
    # 숫자로 반환해준다?!!  

	# 결과를 저장할 변수와 for문에 사용할 변수 미리 선언
	answer = ''
    i = 0
    
    
    return answer

 

우선, 나는 각 숫자에 대한 영어로된 문자열을 리스트에 저장해서 for문을 돌리면서 비교해서 찾으면 해당 문자열을 찾은 배열 위치 값 그대로 숫자로 받는 작업을 진행할려고했으나,,, 중간에 알고리즘 설계부분에서 막혀버렸다.

뤼튼의 도움을 받느데,, 뤼튼은 숫자와 영어를 매핑할 수 있도록 즉, 키 :값 형태를 가질 수 있는 딕셔너리를 사용했다.

 

사실 막혀서 더 이상 푸는 걸 포기하고 AI에게 맡겨버렸다 ㅠㅠ 


 

- 어떻게 해결했는지

def solution(s):
    # 숫자와 영단어의 매핑을 딕셔너리로 생성
    word_to_digit = {
        'zero': '0',
        'one': '1',
        'two': '2',
        'three': '3',
        'four': '4',
        'five': '5',
        'six': '6',
        'seven': '7',
        'eight': '8',
        'nine': '9'
    }

    # 결과를 저장할 문자열
    answer = ''
    i = 0
    
    while i < len(s):
        # 문자열에서 숫자로 변환 가능하면 변환
        if s[i].isdigit():
            answer += s[i]
            i += 1
        else:
            # 영단어를 찾기 위해 최대 5글자 (최대 길이의 영단어)까지 확인
            for j in range(3, 6):  # 3글자에서 5글자까지
                if s[i:i+j] in word_to_digit:
                    answer += word_to_digit[s[i:i+j]]
                    i += j  # 영단어의 길이만큼 이동
                    break
    
    return int(answer)

설명
1. 딕셔너리 생성: 숫자와 영단어를 매핑하는 딕셔너리를 생성합니다.
2.문자열 순회: 주어진 문자열 s를 한 글자씩 순회합니다.
3.만약 현재 글자가 숫자라면, 결과 문자열에 추가합니다.
4.만약 현재 글자가 숫자가 아니라면, 최대 5글자까지 슬라이스해서 영단어를 찾습니다.
5.영단어 발견 시 처리: 영단어가 발견되면 대응하는 숫자를 결과 문자열에 추가하고, 인덱스를 이동합니다.
6.결과 반환: 최종적으로 조합된 숫자 문자열 answer 앞에 정수형 변환을 할 수 이쓴 int를 적용해서 반환해주면 된다.

- 무엇을 새롭게 알았는지

1. 코테에서 ~대응하는 이라는 단어나 아래와 같은 표를 참고해서 보여줬을 때는 ' 딕셔너리' 생성을 생각 할 것!



- 내일 학습할 것은 무엇인지
SQLD개발자 자격시험을 위한 이론 공부와 문제풀이를  최소 10시간 이상 카페에 자리 잡고 공부할겁니다.

728x90
반응형

관련글 더보기