본문 바로가기

개발일지/TIL

TIL 23-03-30

https://github.com/sdoram/Algorithm_study

1. 프로그래머스 알고리즘 문제 -  중복된 문자 제거 

 문제점

문자열 my_string이 매개변수로 주어집니다. 
my_string에서 중복된 문자를 제거하고
하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.

 시도해 본 것들

딕셔너리를 만들어서 key로 중복 값을 체크하기

 해결 방법

def solution(my_string):
    answer = ''
    my_dict = {}
    # 딕셔너리 key값으로 존재하는지 확인하고 중복 체크
    for str_ in my_string:
        if str_ not in my_dict:
            my_dict[str_] = 1
            answer += str_

    return answer

 알게 된 점

딕셔너리의 key값을 활용하는 방법에 좀 더 익숙해졌다.

1.프로그래머스 연습문제 - 문자열 내 p와 y의 개수

 문제점

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. 
s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 
다르면 False를 return 하는 solution를 완성하세요. 
'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 

단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.

 시도해 본 것들

대소문자를 구분하지 않고 입력 받기

입력된 갯수 카운트하기

갯수 비교하고 return하기

items,values,keys,get 함수 사용하기 

 해결 방법

def solution(s):
    # 대소문자 구분 X =  한종류로 바꿔서 만들기
    str_ = s.upper()
    my_dict = {}

    # 카운트 함수
    for i in str_:
        if i in my_dict.keys():
            my_dict[i] += 1
        elif i == 'Y':
            my_dict[i] = 1
        elif i == 'P':
            my_dict[i] = 1

    # key 'P'와 'Y'의 밸류 비교
    if my_dict.get('P') == my_dict.get('Y'):
        return True
    elif my_dict.get('P') != my_dict.get('Y'):
        return False

    return True

 알게 된 점

dictionary를 사용하면서 원하는 결과를 출력하는데 어려움을 겪었는데 .get(key)으로 원하던 value를 불러올 수 있었다.

 

'개발일지 > TIL' 카테고리의 다른 글

TIL 23-04-01  (0) 2023.04.01
TIL 23-03-31  (0) 2023.04.01
TIL 23-03-29  (0) 2023.03.29
TIL 23-03-28  (0) 2023.03.28
TIL 23-03-27  (0) 2023.03.27