본문 바로가기

Programming/Python35

[프로그래머스 Python] 가장 가까운 값 찾기 💡문제 설명문자가 주어지면, 문자를 하나씩 순서대로 순회하면서 앞에 같은 글자가 있으면 얼마나 가까운지를 인덱스 차로 표현하고, 없다면 그냥 -1을 반환하는 문제💡제한 사항 및 입출력 예제 위의 입출력 예제 처럼 b > a > n > a > n > a 이렇게 순회하는데, b 는 당연히 맨 앞이니까 -1 이 반환되고 a 는 앞에 a 와 동일한 글자가 없기 때문에 -1 , n 도 -1 , 그 다음 나오는 a 는 2 칸 앞에 같은 글자가 있으니 2를 반환, n 도 2칸 앞에 n 이 있으니 2 를 반환, 마지막 a 는 앞에 같은 글자가 2개 있는데, 가장 가까운 a 와의 거리를 계산해야 하므로 2 가 반환되도록 코딩을 해야한다. 💡나의 정답1. answer 라는 빈 리스트 생성2. 일단 1번째 문자는 무조.. 2024. 7. 12.
[프로그래머스 Python] 숫자 문자열과 영단어 💡문제 설명일부 자릿수를 영단어로 바꾼 카드를 건네주면 원래 숫자를 찾는 게임. 숫자의 일부 자릿수가 영단어로 바뀌었거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매겨변수로 주어진다. s 가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성하기. 💡제한 조건 및 입출력 예시 💡정답코드dictionary 를 정의해준다. {'영어' : '숫자', ... }temp_str = '' 임시 문자열 저장 변수result = '' 최종 결과 저장 변수만약에 "one4seven8" 이라는 문자열 s 가 들어온다면 o -> n -> e -> 4 -> ... 로 순회를 시킨다. 만약에 문자열 자료형의 메서드인 isdigit()을 통해 자료형이 숫자형이라면 result 에 더해준다. 만약 아니라면 .. 2024. 7. 11.
[프로그래머스 Python] 시저 암호 💡문제 설명어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.  💡제한 조건 및 입출력 예시 💡오답코드오답코드의 문제점 1. 대문자와 소분자 구분이 명확하게 되어 있지 않다. 2. 'z' 와 'Z' 에 대해서만 예외 처리를 해줬기 때문에 예외가 많이 발생 (y + 3 = b) def solution(s, n): # 예외 , 공백 z -> a new_ls = [] for a_ in s : i.. 2024. 7. 10.
[프로그래머스 Python] 제일 작은 수 제거하기 (속도 이슈..?) 제일 작은 수 제거하기✅   정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.조건1 : 가장 작은 수를 제거한 배열조건2 : 배열의 길이가 1초과일 경우 [-1]을 리턴 ✅  ✅  결론부터 말하자면, 문제에서 정렬을 하라는 조건이 없는데, 나의 return 값은 항상 내림차순 정렬된 형태로 나온다는 것. 그래서 테스트 케이스에서는 실행이 되지만, 다른 경우는 실행 X def solution(arr): if len(arr) > 1: arr... 2024. 7. 5.